美文网首页
socket.io明晰

socket.io明晰

作者: Jalon | 来源:发表于2016-03-23 11:51 被阅读0次
  • io.emitio.sockets.emit是一样的,向所有连接的客户端都发送
io.emit('an event sent to all connected clients');
io.sockets.emit('an event sent to all connected clients');
建议使用io.emit
  • 连接内部的socket代表的是每一个连接本身因此:
    • socket.broadcast.emit 会像当前连接之外的连接的服务器端发送消息
    • socket.on socket.emit 不用多说

将数据关联并存储到当前连接的 socket
在一个会话周期中,我们大部分情况下都需要存储当前会话者的一些数据,来识别或者特定情形下获取这些数据。
示例代码

var io = require(‘socket.io‘).listen(80);
 
io.sockets.on(‘connection‘, function (socket) {
  socket.on(‘set nickname‘, function (name) {
    socket.set(‘nickname‘, name, function () {
      socket.emit(‘ready‘);
    });
  });
 
  socket.on(‘msg‘, function () {
    socket.get(‘nickname‘, function (err, name) {
      console.log(‘Chat message by ‘, name);
    });
  });
}); 非常建议使用这种方式来设置用户会话的数据。

在服务端收到connection的事件的时候,socket会携带一个建立连接时浏览器端传过来的握手信息socket.handshake
这些浏览器端的信息得到之后,就很容易进行权限的验证了。socket.io同时提供了
io.set('authorization', callback);

方法来对每个连接进行权限限制。
http://deadhorse.me/nodejs/2011/12/29/socket.io_induction.html

相关文章

网友评论

      本文标题:socket.io明晰

      本文链接:https://www.haomeiwen.com/subject/gabllttx.html