Socket.io emit()延迟/缓冲区刷新?

时间:2016-09-07 14:57:11

标签: javascript node.js socket.io

我正在使用socket.io向浏览器发送消息。在node.js方面,我正在做

socket.emit('message', data);

在浏览器端我正在做

socket.on('message', handleData);

现在这很好用。出于测试目的,我手动触发{来自节点检查器控制台)socket.emit()。我能够做2-3次这样的事情,之后下一条消息需要很长时间才能完成。大约10秒钟。

我的消息很短。已启用压缩,对象为JSON {"could be about": "this long"}。使用较长的字符串进行测试时,会立即发送所有消息。所以这与缓冲/优化有关,但在我们的例子中,所有消息都是立即发送的。

有没有人对此延迟有任何见解?感谢

1 个答案:

答案 0 :(得分:1)

我有同样的问题。 尽管已经有好几年了,但这些技巧对其他有问题的人还是有用的。

  1. How To Cancel, Timeout, or Clear Queued Messages In Socket.IO

  2. https://github.com/feathersjs/feathers/issues/1532

    socket.on('connect',function(){ socket.sendBuffer = []; // 做东西 });

    socket.on('reconnect',function(){ socket.sendBuffer = []; });