如何从onmessage消息中获取Websocket主机?

时间:2015-06-12 18:04:22

标签: javascript jquery websocket

我有多个与单个页面通信的websocket服务器,我正在运行一个回调列表来处理来自服务器的onmessage事件。为了重用一些函数进行调试,我想知道消息来自msg对象的位置。

...

socket1Callbacks = $.Callbacks();
socket2Callbacks = $.Callbacks();
socket1Callbacks.add(logIncoming);
socket2Callbacks.add(logIncoming);

...

socket1.onmessage = function (msg) {
   socket1Callbacks.fire(msg);
};
socket2.onmessage = function (msg) {
    socket2Callbacks.fire(msg);
};

...

function logIncoming(msg) {
    console.log('MSG FROM HOST:' + msg.????host????);
    console.log('Recieved: ' + msg.data);
}

1 个答案:

答案 0 :(得分:0)

传入消息回调内部:

socket2.onmessage = function (msg) {
    console.log(this.url); // the connected host
};

如果你想在logIncoming函数中使用它,只需用你自己的对象包装传入的消息,包含主机:

socket2.onmessage = function (msg) {
    socket2Callback.fire({ host: this.url, data: msg });
};

然后

function logIncoming(msg) {
    console.log('MSG FROM HOST:' + msg.host);
    console.log('Received: ' + msg.data);
}