禁用Nagle的算法客户端/ JavaScript

时间:2015-11-08 01:27:53

标签: javascript php node.js socket.io nagle

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

我正在尝试通过在Raspbian OS上托管的PHP CLI服务器(也在Windows 7和Ubuntu上托管具有相同结果)跨websocket传输数据。此服务器已成功创建套接字并接受多个连接,并已设置TCP_NODELAY标志(仅使用socket_get_option验证)。

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

在大多数平台上,无论是否设置了此TCP_NODELAY标志,数据都将流式传输而不会聚集。但是,在 Windows 7 Chrome和Firefox上,数据以块的形式到达(延迟时间为0.2秒)。在 Windows 8,Linux,iOS和Windows 7的Internet Explorer 11上:我根本没有看到此问题

http://www.13willows.com/hovelme/script/serverControl.php 这是测试网站,点击"连接",然后点击"查看游戏"你应该看到一个当前数据包每50毫秒稳定地从1增加到20。但是,在某些客户端,它大约每200毫秒跳一次4。

任何让这个停止的想法?使用node.js / socket.io会修复这样的东西,还是允许我从用户的浏览器运行代码吗?

0 个答案:

没有答案