如何确保socket.io-client的消息已被socket.io服务器接收?

3
有没有一种方法可以确保socket.io-client消息被socket.io服务器接收?我看到socket.io中有一个可用的确认机制。如果未收到确认,我们是否可以重试发送消息(是否有任何标准模式)或者socket.io-client会在规定的时间内未收到确认时自动重试发送消息?
我的应用程序在2g移动网络上使用socket.io-client。98%的时间消息都能顺利到达服务器。另外2%的情况下,由于移动网络的问题,消息丢失了。
它将声称具有套接字连接并传输数据,但服务器端却从未收到。我想知道是否有一种可靠的方法来确保客户端消息已经到达服务器。每个客户端都已经有一个ID,但不能仅仅假设消息已经到达那里。
是否有人有关于如何在一定时间范围内未收到确认时重新发送相同消息的示例?我甚至不关心是否再次传输相同的消息,这是不理想的,但对我来说不是那么重要。
1个回答

0

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

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


更新:找到了一种更可靠的解决方案,使用MQTT。 - r0w

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接