Websocket在Google Chrome中传输速度较慢

时间:2015-01-20 02:36:22

标签: javascript google-chrome websocket

我正在构建基于WebSocket的带宽测试,该测试在Google Chrome中的运行速度要慢得多。 在测试中,Chrome达到~170 - 220Mbps并且在测试期间(40秒)保持在该区域周围。奇怪的是,如果我最小化Chrome,我的速度通常会增加到大约290-310Mbps,这让我觉得“渲染”相关的东西阻塞或减慢了我的速度,但这个例子非常简单,并且在页面上显示的内容。 使用FireFox和IE进行测试时,性能始终保持在300-330Mbps,这是我的线路速率。 我在Windows 7上使用Chrome版本39.0.2171.99m。

任何人对此都有任何想法? 以下是我的简化代码。



//socket_worker.js
function initWebSocket(ip) {

        var connection = new WebSocket("ws://"+ip+":8080"); 

        connection.onerror = function (error) {
                console.log('WebSocket Error ' + error);
        };  

        connection.onopen = function( ) {
                self.postMessage('connected');
                connection.send('startSpew');
        }   

        connection.onmessage = function (e) {
                self.postMessage( e.data.length);
        };  
};

self.addEventListener('message', function(e) {
        switch (e.data.cmd) {
                case 'init':
                        initWebSocket(e.data.IP);
                        break;
                default:
                        self.postMessage('Unknown command: ' + e); 
        };  
}, false);

<!DOCTYPE html>
<meta charset="utf-8" />
<script language="javascript" type="text/javascript">

        var chromeWorker = new Worker('js/socket_worker.js');
        chromeWorker.addEventListener('message', function(e) {
                        
         }, false);

        chromeWorker.postMessage({'cmd':'init', 'IP': ’10.0.1.25’});
</script>
<h2>WebSocket Test</h2>
&#13;
&#13;
&#13;

服务器端非常基本。我正在使用websocketd(https://github.com/joewalnes/websocketd)来运行这个perl脚本。

#!/usr/bin/perl -w
use strict;
use IO::Handle;

 STDOUT->autoflush(1);

my $load = "pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!pugsrule!"; 


my $pugload = $load.$load.$load.$load.$load;
my $len;
while (<>) {
        if($_  =~ 'startSpew'){
                while(1){
                 print $pugload."\n";
                }   
        }   
        if($_ =~ 'uppload'){
                $len = length($_);
                print "$len\n";
        }   
}

0 个答案:

没有答案