Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何确保socket.io服务器已接收socket.io-client消息?_Javascript_Node.js_Websocket_Socket.io - Fatal编程技术网

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

Javascript 如何确保socket.io服务器已接收socket.io-client消息?,javascript,node.js,websocket,socket.io,Javascript,Node.js,Websocket,Socket.io,是否有办法确保socket.io服务器接收socket.io-client消息?我看到socket.io中有一个可用的确认机制。如果没有收到确认,我们是否可以重试发送消息(是否有任何标准模式),或者如果在规定的时间内没有收到确认,socket.io-client是否可以重试发送消息 我的应用程序在2g蜂窝网络上使用socket.io-client。98%的时间邮件到达服务器时没有任何问题。据我所知,另外2%的信息由于蜂窝网络问题而丢失 它将声称有一个套接字连接,数据将被传输,但服务器端永远不会得

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

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

它将声称有一个套接字连接,数据将被传输,但服务器端永远不会得到它。我想知道是否有可靠的方法来确保客户端消息已经到达服务器。我的每一位客户都已经有了身份证,但不能假设信息已经到达了那里


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

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


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

我发现了这个:更新:使用MQTT找到了更可靠的解决方案