我有多个与单个页面通信的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);
}
答案 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);
}