这是以下问题的后续问题;
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);
之间有什么区别?
答案 0 :(得分:5)
发送易变信息
有时可以删除某些邮件。 假设您有一个应用程序,显示该关键字的实时推文 比伯
如果某个客户端尚未准备好接收消息(因为 网络速度缓慢或其他问题,或者因为它们是通过网络连接的 如果,那么长轮询并处于请求 - 响应周期的中间 他们没有收到所有与bieber相关的推文 不会受苦。
在这种情况下,您可能希望将这些消息作为易失性发送 消息。
基本上,如果您不关心客户端是否收到数据,请将其作为易失性发送。