朕与加班不共戴天 2025-03-05 10:28 采纳率: 60%
浏览 10
已结题

关于#小程序#的问题:建立了两个Socket,一个用于全局消息通知,但是两个Socket的onMessage事件却是触发的同一个

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

img

img

  • 写回答

3条回答 默认 最新

  • 道友老李 JWE233286一种基于机器视觉的水表指针读数识别及修正的方法 专利发明者 2025-03-05 10:28
    关注
    让【道友老李】来帮你解答,本回答参考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事件不会触发同一个。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月5日