简单地发射的一个套接字和一个易于发射的套接字之间有什么区别?

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

为什么updateSockets()函数接受一个像这样的参数?

在下面的代码中,套接字使用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.volatile.emit('notification', data);tmpSocket.emit('notification', data);

从Socket.io文档 :

发送易失性消息

有时某些消息可能会被丢弃。 比方说,你有一个应用程序,显示关键字bieber的实时鸣叫。

如果某个客户端没有准备好接收消息(由于networking缓慢或其他问题,或者因为他们通过长轮询连接并处于请求 – 响应周期的中间),如果他们没有收到所有的消息与bieber有关的应用程序不会受到影响。

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

本质上,如果你不关心客户端是否接收到数据,那么将其作为易失性来发送。