Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.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 当我的internet连接不稳定时,我是否应该使用web套接字(用于消息传递应用程序)?_Javascript_Websocket - Fatal编程技术网

Javascript 当我的internet连接不稳定时,我是否应该使用web套接字(用于消息传递应用程序)?

Javascript 当我的internet连接不稳定时,我是否应该使用web套接字(用于消息传递应用程序)?,javascript,websocket,Javascript,Websocket,我有两个客户在移动设备上互相发送消息(使用网站) 目前,每个客户端每1秒向服务器进行一次ajax调用,以检查是否有新消息,因此即使没有internet连接,当它返回时,消息也会重新出现 我想尝试web套接字(用于实时连接,并在途中学习新技术),但我不确定一旦internet连接中断并恢复(web套接字不再连接…)时该怎么办 我正在寻找一种能够始终保持连接的设备,当连接中断或恢复时,它会自动重新连接。如果您在网站(浏览器)上使用socket.io,在服务器上使用socket.io(例如expres

我有两个客户在移动设备上互相发送消息(使用网站)

目前,每个客户端每1秒向服务器进行一次ajax调用,以检查是否有新消息,因此即使没有internet连接,当它返回时,消息也会重新出现

我想尝试web套接字(用于实时连接,并在途中学习新技术),但我不确定一旦internet连接中断并恢复(web套接字不再连接…)时该怎么办


我正在寻找一种能够始终保持连接的设备,当连接中断或恢复时,它会自动重新连接。

如果您在网站(浏览器)上使用socket.io,在服务器上使用socket.io(例如express.io),那么您在socket.io上有一个选项,可以在设备再次连接internet时自动重新连接:

(在上一链接中,请参阅io协议部分中的“重新连接”选项)


只需记住结合您自己的死连接检测。基本上,您必须实现on-ping/pong机制,这是一段数据(比如json消息
{ping:true}
),您每X次从服务器发送到客户端。如果客户端在给定的时间内没有应答,服务器将认为客户端连接已断开并断开连接。如果客户端在一段时间内没有从服务器获得ping,则客户端会认为连接已断开并重新连接。

我的客户端在本地主机上运行,而主应用程序在远程服务器上运行,socket.io是否足以让本地主机客户端与远程托管站点通信?注意到我现在也需要在我的网站上安装node.js是的,socket io就足够了。在服务器端,是的,您需要像nodejs这样的服务器来支持WebSocket。你在django和php上有其他选择,但这是一个麻烦,对于这个功能,简单的解决方案是node。在服务器端,我需要在命令行上运行node,并确保它始终运行?是的,你可以使用forever,如果node关闭,那么forever将再次启动。只需尝试socket.io聊天示例,在端口8787上运行js,在远程服务器上打开防火墙,在我的本地pc上设置:var socket=io.connect(');聊天示例不起作用,出现错误:net::ERR\u CONNECTION\u TIMED\u OUTSo这意味着我的客户机上需要有计时器,这类似于每个间隔都有ajax调用。。。没有?或多或少。没有可靠的方法从浏览器知道连接是否已断开。WebSocket标准定义了一种乒乓机制,但不幸的是javascript API无法使用它,也无法找到答案。您也可以不使用计时器来执行此操作,例如,每次从服务器收到ping时,都会存储时间戳,如果在发送任何内容时时间戳太旧,只需在发送之前重新连接即可。WebSocket更多地用于允许服务器将数据推送到客户机,如果您只是从客户机发送数据,则没有什么好处。