Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.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/1/php/286.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
禁用Nagle';s算法客户端/JavaScript_Javascript_Php_Node.js_Socket.io_Nagle - Fatal编程技术网

禁用Nagle';s算法客户端/JavaScript

禁用Nagle';s算法客户端/JavaScript,javascript,php,node.js,socket.io,nagle,Javascript,Php,Node.js,Socket.io,Nagle,Nagle的算法是否也需要在客户端禁用?如果是这样的话,我还没有找到一种单独通过JavaScript禁用Nagle算法的方法 我试图通过websocket,从托管在Raspbian OS上的PHP CLI服务器(也托管在Windows7和Ubuntu上,结果相同)传输数据。此服务器已成功创建套接字并接受多个连接,并已设置TCP_节点延迟标志(仅使用套接字_get_选项验证) 在大多数平台上,无论是否设置此TCP_节点延迟标志,数据都将在不聚集的情况下流式传输。然而,在Windows7Chrome

Nagle的算法是否也需要在客户端禁用?如果是这样的话,我还没有找到一种单独通过JavaScript禁用Nagle算法的方法

我试图通过websocket,从托管在Raspbian OS上的PHP CLI服务器(也托管在Windows7和Ubuntu上,结果相同)传输数据。此服务器已成功创建套接字并接受多个连接,并已设置TCP_节点延迟标志(仅使用套接字_get_选项验证)

在大多数平台上,无论是否设置此TCP_节点延迟标志,数据都将在不聚集的情况下流式传输。然而,在Windows7Chrome和Firefox上,数据以块的形式到达(延迟0.2秒)。在Windows 8、Linux、iOS和Windows 7的Internet Explorer 11上:我根本看不到这个问题

这是测试网站,点击“连接”,然后点击“查看游戏”,你会看到当前数据包从1稳步增加到20,每50毫秒一次。但是,在某些客户端上,它大约每200毫秒一次跳4次

有什么办法让这一切停止吗?使用node.js/socket.io可以修复类似的问题,并且仍然允许我从用户的浏览器运行代码吗

$sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)
socket_set_option($sock, SOL_SOCKET, TCP_NODELAY, 1);