如何确保socket.io服务器收到socket.io-client消息?

时间:2017-08-10 19:31:19

标签: javascript node.js websocket socket.io

有没有办法确保socket.io服务器收到socket.io-client消息?我看到socket.io中有一个确认机制。如果没有收到确认(我是否有任何标准模式),我们是否可以重新发送消息?如果在某个规定的时间内没有收到确认,socket.io-client是否会重试发送消息?

我的应用程序是在2g蜂窝网络上使用socket.io-client。 98%的时间消息到达服务器没有任何问题。由于我所知道的蜂窝网络问题,另外2%的信息丢失了。

它将声称有一个套接字连接,数据将被传输,但服务器端永远不会得到它。我想知道是否有确定的火灾方式来确保客户端消息已到达服务器。我的每个客户都有一个ID,但不能假设消息到达那里。

有没有人有一个例子,说明如果在某个时间范围内没有做出确认,如何重新发送同一条消息。我甚至不在乎是否再次传输相同的消息,这对我来说是不可取的,但对我来说并不重要。

1 个答案:

答案 0 :(得分:0)

最灵活的方法是建立自己的确认机制。如果您正在使用超时,则可能需要防止重复消息,因为所谓丢失的消息最终可能会到达。

作为替代方案,简单的AJAX可以确保消息传递,并且它也比websocket更可靠。但是,您可能需要重建现有系统,自己判断它是否值得。