2015-11-08 34 views
1

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

我试图跨越的WebSocket流数据,从托管在Raspbian OS PHP的CLI服务器(也托管在Windows 7和Ubuntu有相同的结果)。此服务器已成功创建套接字并接受多个连接,并设置了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的IE 11:我没有看到这个问题在所有。

http://www.13willows.com/hovelme/script/serverControl.php 下面是测试网站,点击“连接”,然后单击“查看游戏”,你应该看到当前分组稳步递增,从1到20,每50ms。但是,在某些客户端,每200毫秒一次跳转4次。

任何想法得到这个停下来?将使用node.js/socket.io修复这样的问题,并仍然允许我从用户的浏览器运行代码?

回答

0

它需要启用的两个客户端/禁用,我不知道的方式做到这一点通过JavaScript,但是,为客户端。我相信Chrome会默认禁用网络套接字,但不确定其他浏览器。