Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务器脱机时发出socket.io_Javascript_Node.js_Sockets - Fatal编程技术网

Javascript 服务器脱机时发出socket.io

Javascript 服务器脱机时发出socket.io,javascript,node.js,sockets,Javascript,Node.js,Sockets,我正在使用socket.iov1.3.6(nodejs),并尝试使用下面的代码从浏览器发出数据 客户端代码 var socket=io.connect('http://something.com:3300/'); 函数sendMessage(消息){ 发出('message',message); }是的,在第一次连接之前,要发出的包有一个“脱机”缓冲区,请参见此处socket.js的实现: (特别是检查连接和发射缓冲功能/属性)我在重新连接时做了一点小小的改变,就解决了这个问题: mySoc

我正在使用socket.iov1.3.6(nodejs),并尝试使用下面的代码从浏览器发出数据

客户端代码

var socket=io.connect('http://something.com:3300/');
函数sendMessage(消息){
发出('message',message);

}
是的,在第一次连接之前,要发出的包有一个“脱机”缓冲区,请参见此处socket.js的实现:


(特别是检查连接和发射缓冲功能/属性)

我在重新连接时做了一点小小的改变,就解决了这个问题:

mySocket.on('reconnect', function() {

  //Avoid that buffered emits getting send again
  mySocket.sendBuffer=[];

  ...
});

通过将sendBuffer设置为空数组,可以避免在重新连接时再次发送包。当然,你应该自己处理发送尝试。

谢谢你的解释!打开连接时,它将发出emitBuffers中的所有数据。。。只要浏览器保持打开状态,它就会变得可靠。那么,你能接受我的回答吗?我很乐意帮忙:)