m***@163.com
m***@163.com
  • 发布:2023-07-05 20:30
  • 更新:2023-07-06 11:39
  • 阅读:346

websocket 推送消息失败

分类:uni-app

被这个问题困扰了,一旦推送消息就报错。这是我的客户端代码

        created() {  
            // 在页面中调用connectSocket函数  
            var socketTask = uni.connectSocket({  
              url: 'ws://127.0.0.1:8081', // 连接的 WebSocket 地址  
              success: function () {  
                console.log('WebSocket连接成功');  
              },  
              fail: function (error) {  
                console.log('WebSocket连接失败:' + error);  
              }  
            });  

            // 监听WebSocket连接成功事件  
            uni.onSocketOpen(function () {  
              console.log('WebSocket连接已打开');  
              console.log(socketTask);  
            });  

            // 监听WebSocket接收到服务器消息事件  
            uni.onSocketMessage(function (message) {  
              console.log('接收到消息:' + message.data);  
            });  

            // 监听WebSocket连接关闭事件  
            uni.onSocketClose(function () {  
              console.log('WebSocket连接已关闭');  
            });  

            // 监听WebSocket连接错误事件  
            uni.onSocketError(function (error) {  
              console.log('WebSocket连接错误:' + error);  
            });  

        },  
        methods:{  
            toPage(){  
                 uni.sendSocketMessage({  
                      data: '哈哈哈'  
                });  
            }  
              }

一下是nodejs服务端代码

const WebSocket = require('ws');  

// 创建WebSocket服务器  
const wss = new WebSocket.Server({ port: 8081 });  

// 处理WebSocket连接  
wss.on('connection', (ws) => {  
  console.log('创建ws链接');  
  console.log(wss.protocol,'---------');  

  // 处理来自前端的消息  
  ws.on('message', (message) => {  
    console.log('接收到前端消息:', message);  

    const response = '你好'  
    ws.send(response);  
  });  

  ws.on('error', (error) => {  
    console.log('WebSocket连接错误:', error);  
  });  

  // 处理WebSocket断开连接  
  ws.on('close', () => {  
    console.log('ws链接断开');  
  });  
});

2023-07-05 20:30 负责人:无 分享
已邀请:
m***@163.com

m***@163.com (作者)

服务端,可以打印到,console.log('创建ws链接');

m***@163.com

m***@163.com (作者)

在控制台,直接用下面代码测试,是没问题的,问题应当在这上面
uni.sendSocketMessage({
data: '哈哈哈'
});

var ws = new WebSocket("ws://127.0.0.1:3000/socket");  

ws.onopen = function(evt) {   
  console.log("Connection open ...");   
  ws.send("Hello WebSockets!");  
};  

ws.onmessage = function(evt) {  
  console.log( "Received Message: " + evt.data);  
  ws.close();  
};  

ws.onclose = function(evt) {  
  console.log("Connection closed.");  
};

要回复问题请先登录注册