在socket.io中,如何区分同一事件的2个触发器?

时间:2014-03-16 00:17:10

标签: node.js socket.io

假设我有一个简单的事件定义为

socket.on('event', function(data){
    ...
});

如果客户端一次又一次地触发它

socket.emit('event'); //once
socket.emit('event'); //again

有没有办法*固有地**区分这两个事件?

*我不想依赖data,因为这只是一个客户端变量,很容易被篡改。 (对吧?)

对于上下文,它与this question相关。

1 个答案:

答案 0 :(得分:2)

我会使用sessionSockets为服务器端的每个用户保存数据。

sessionSockets.on('connection', function (err, socket, session) {
  socket.on('event', function() {
    if(!session.eventReceived) {
      // manage event

      // save event received in session
      session.eventReceived = true;
      session.save();
    }
  });
});