所以我有一个运行良好的socket.io服务器。这非常简单:模仿屏幕共享,因为它将页面上的一个客户位置广播到另一个,谁抓住它并移动到所述位置等等。所有这一切都很好,但是因为我的方式和#39 ; m抓住机芯,它可能(并且很常见)一次发送太多消息,使其他客户无法跟上。
我想知道是否有办法让socket.io' sleep'或者等待'在一定的时间间隔内,忽略在此间隔期间发送的消息而不返回错误,然后再次开始监听?
在每个客户端实现这一点是可行的(这可能是更好的选择),但我只是想知道这是否也可以在服务器端实现。
答案 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.