node.js与websocket入门

本文详细解析了WebSocket在服务器端和客户端的使用方法,并揭示了一个常见的使用误区。通过实例展示了如何正确地使用WebSocket进行数据传输,以及如何避免常见的错误。文章旨在帮助开发者更高效地利用WebSocket技术。
摘要由CSDN通过智能技术生成

因为涉及到要读pomelo框架的rpc部分,所以要搞懂node.js到底是怎么用websocket的,刚开始居然还掉到了坑里面,郁闷。。。只能说websocket的用法太奇特了。。。

首先我们来看服务器端的使用方法:

var sio = require('socket.io');

var  wsocket = sio.listen(80, {  //用于监听配置的端口
	transports: [
	  'flashsocket', 'websocket', 'htmlfile', 'xhr-polling', 'jsonp-polling'
	]
});

wsocket.sockets.on('connection', function (socket) {  //当有新的连接建立的时候
	console.log("come in");
	socket.emit('news', { hello: 'world' });
	  socket.on('my other event', function (data) {
	    console.log(data);
	  });
});
其实这部分与tcp的socket用法都很像了吧,无非就是调用一下listen函数,然后这里设置了当有connection建立的时候,进行处理的函数。。。

那么接下来来看看客户端部分的代码:

var sioClient = require('socket.io-client');

var socket = sioClient.connect("127.0.0.1" + ':' + 80, {'force new connection': true, 'reconnect': false});

socket.emit("my other event", "aaaaaa")
socket.on("news", function(data){
    console.log(data);
});
这里看起来也很简单吧,无非是调用一下connect函数用于连接服务器。。


这里来说说我掉进去的那个坑吧:

socket.emit("my other event", "aaaaaa")
看上述的代码,这是客户端部分的,这里调用的是emit方法,这里一般会认为是用于激活当前socket上面的my other event事件,汗。。。其实不是的。。。

它的真实用途是向服务器端发送数据“aaaaaa”,并激活服务器端的my other event事件函数,用于处理发送过来的数据。。。

我勒个去。。居然是这个样子的。。用emit来发送数据。。。汗啊。。。


这里用于接收数据就是直接设置on事件就好了。。那么只要收到对应的数据,就可以处理了。。


好了,其实websocket其实还是很好用的,起码比直接用socket要好的多了,省去了很多数据的解码,读取的过程。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值