我正在为 Websocket 连接构建时间测量。我需要将开放范围绑定到服务器对象。但我也有 time1,这是从开始到完成连接的时间。我想将 time1 放到对象中,它工作正常,但我在绑定函数中没有任何访问权限。
for(var i = 0; i < 10; i++) {
Server[i] = new WebSocket('ws://127.0.0.1:9300');
var time1 = new Date;
Server[i].time1 = time1;
Server[i].bind('open', function() {
var time2 = new Date;
/*** doesn't work ***/
console.log(time2 - this.time1);
/*** doesn't work ***/
console.log(time2 - Server[i].time1)
/*** ***/
});
}
这两种方法我都试过了,都不行。我知道绑定中的 this 是不同的,但是有人可以告诉我一种方法来确保每次 1 到每个服务器 [i] 对象,然后在此绑定方法中访问它吗?
谢谢!
更新*
您能否告诉我如何更改此功能以使其正常工作
this.conn.onopen = function(){dispatch('open',null)}
var dispatch = function(event_name, message){
var chain = callbacks[event_name];
if(typeof chain == 'undefined') return; // no callbacks for this event
for(var i = 0; i < chain.length; i++){
chain[i]( message )
}
}