如何在发送下一个活动之前等待socketio?

时间:2014-05-23 16:40:52

标签: node.js socket.io

所以我有一个运行良好的socket.io服务器。这非常简单:模仿屏幕共享,因为它将页面上的一个客户位置广播到另一个,谁抓住它并移动到所述位置等等。所有这一切都很好,但是因为我的方式和#39 ; m抓住机芯,它可能(并且很常见)一次发送太多消息,使其他客户无法跟上。

我想知道是否有办法让socket.io' sleep'或者等待'在一定的时间间隔内,忽略在此间隔期间发送的消息而不返回错误,然后再次开始监听?

在每个客户端实现这一点是可行的(这可能是更好的选择),但我只是想知道这是否也可以在服务器端实现。

1 个答案:

答案 0 :(得分:1)

使用易失信息。如果消息太多,他们将被删除以再次使用实时消息。

socket.volatile.emit('msg', data);

来自socket.io网站:

Sending volatile messages.
Sometimes certain messages can be dropped. Let's say you have an app that shows realtime tweets for the keyword `bieber`.

If a certain client is not ready to receive messages (because of network slowness or other issues, or because he's connected through long polling and is in the middle of a request-response cycle), if he doesn't receive ALL the tweets related to bieber your application won't suffer.

In that case, you might want to send those messages as volatile messages.