gpt4 book ai didi

javascript - Websocket Javascript 的多个处理程序

转载 作者:数据小太阳 更新时间:2023-10-29 04:30:49 24 4
gpt4 key购买 nike

我们是否可以为同一个 webcocket session 设置多个处理程序(onmessage 方法)?在下面的代码中,只有一个 onmessage 方法来处理来自客户端的消息。但是有没有可能我们可以为同一个 websocket session 使用多个 onmessage 处理程序方法?

代码:

    var url = window.location.href;
var arr = url.split("/");
var redirectURL = arr[0] + "//" + arr[2];
var wsURL = redirectURL.replace('http','ws');
var ws = new WebSocket(wsURL+'/abc');
ws.onopen = function(event) {
var data = '{"userId":' + sessionStorage.getItem('userID') + '}';
ws.send((data));
};

ws.onmessage = function(event) {
var msg = event.data;
console.info('Push Message : ' + msg);
Ext.toast({
html: msg,
title: 'Alert',
align: 'br',
autoShow : true
});

};

最佳答案

WebSocket 对象支持 .addEventListener() 所以,你可以这样做:

var url = window.location.href;
var arr = url.split("/");
var redirectURL = arr[0] + "//" + arr[2];
var wsURL = redirectURL.replace('http','ws');
var ws = new WebSocket(wsURL+'/abc');
ws.addEventListener("open", function(event) {
var data = '{"userId":' + sessionStorage.getItem('userID') + '}';
ws.send((data));
});

ws.addEventListener("message", function(event) {
var msg = event.data;
console.info('Push Message : ' + msg);
Ext.toast({
html: msg,
title: 'Alert',
align: 'br',
autoShow : true
});

});

// some other listener for incoming messages
ws.addEventListener("message", function(event) {
// code here
});

关于javascript - Websocket Javascript 的多个处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39210534/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com