uniapp的小程序,建立了两个Socket,一个用于全局消息通知,一个是用户聊天,但是两个Socket的onMessage事件却是触发的同一个,两个的连接地址也不一样呀


uniapp的小程序,建立了两个Socket,一个用于全局消息通知,一个是用户聊天,但是两个Socket的onMessage事件却是触发的同一个,两个的连接地址也不一样呀


关注让【道友老李】来帮你解答,本回答参考gpt编写,并整理提供,如果还有疑问可以点击头像关注私信或评论。
如果答案让您满意,请采纳、关注,非常感谢!问题可能出在Socket连接的管理上。可以尝试在创建Socket连接时分别给它们设置不同的标识,然后在接收消息时判断是哪个Socket发送的消息。同时,也需要确保在绑定onMessage事件时是正确的给不同的Socket连接绑定的。 以下是一个示例代码,提供参考:
// 创建全局消息通知Socket
let globalSocket = new WebSocket('ws://global_socket_address');
globalSocket.identifier = 'global';
globalSocket.onmessage = function(event){
if(this.identifier === 'global'){
// 处理全局消息通知的逻辑
}
}
// 创建用户聊天Socket
let chatSocket = new WebSocket('ws://chat_socket_address');
chatSocket.identifier = 'chat';
chatSocket.onmessage = function(event){
if(this.identifier === 'chat'){
// 处理用户聊天的逻辑
}
}
通过给不同的Socket连接设置标识,并在接收消息时进行判断处理,可以确保两个Socket连接的onMessage事件不会触发同一个。