简单发出的套接字和volatile发出的套接字有什么区别?

时间:2015-07-29 10:31:29

标签: javascript node.js sockets socket.io

这是以下问题的后续问题;

Why does this updateSockets() function accept a parameter that look like this?

在下面的代码中,套接字使用volatile来发出。

var updateSockets = function(data) {
  // adding the time of the last update
  data.time = new Date();
  console.log('Pushing new data to the clients connected ( connections amount = %s ) - %s', connectionsArray.length , data.time);
  // sending new data to all the sockets connected
  connectionsArray.forEach(function(tmpSocket) {
    tmpSocket.volatile.emit('notification', data);
  });
};

如果代码被更改为tmpSocket.emit('notification', data);怎么办? tmpSocket.volatile.emit('notification', data);tmpSocket.emit('notification', data);之间有什么区别?

1 个答案:

答案 0 :(得分:5)

来自Socket.io docs

  

发送易变信息

     

有时可以删除某些邮件。   假设您有一个应用程序,显示该关键字的实时推文   比伯

     

如果某个客户端尚未准备好接收消息(因为   网络速度缓慢或其他问题,或者因为它们是通过网络连接的   如果,那么长轮询并处于请求 - 响应周期的中间   他们没有收到所有与bieber相关的推文   不会受苦。

     

在这种情况下,您可能希望将这些消息作为易失性发送   消息。

基本上,如果您不关心客户端是否收到数据,请将其作为易失性发送。