node.js与websocket入门



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

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

[javascript] view plain copy print ?
  1. var sio = require('socket.io');  
  2.   
  3. var  wsocket = sio.listen(80, {  //用于监听配置的端口  
  4.     transports: [  
  5.       'flashsocket''websocket''htmlfile''xhr-polling''jsonp-polling'  
  6.     ]  
  7. });  
  8.   
  9. wsocket.sockets.on('connection'function (socket) {  //当有新的连接建立的时候  
  10.     console.log("come in");  
  11.     socket.emit('news', { hello: 'world' });  
  12.       socket.on('my other event'function (data) {  
  13.         console.log(data);  
  14.       });  
  15. });  
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建立的时候,进行处理的函数。。。

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

[javascript] view plain copy print ?
  1. var sioClient = require('socket.io-client');  
  2.   
  3. var socket = sioClient.connect("127.0.0.1" + ':' + 80, {'force new connection'true'reconnect'false});  
  4.   
  5. socket.emit("my other event""aaaaaa")  
  6. socket.on("news"function(data){  
  7.     console.log(data);  
  8. });  
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函数用于连接服务器。。


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

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

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

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


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


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值