错误异常>开发语言>C#
场景:小程序+c# Api(https://xxxx.com)
小程序端代码:
openSocket() { //打开时的动作 wx.onSocketOpen(() => { console.log('WebSocket 已连接') this.globalData.socketStatus = 'connected'; this.sendMessage(); }) //断开时的动作 wx.onSocketClose(() => { console.log('WebSocket 已断开') this.globalData.socketStatus = 'closed' }) //报错时的动作 wx.onSocketError(error => { console.error('socket error:', error) }) // 监听服务器推送的消息 wx.onSocketMessage(message => { //把JSONStr转为JSON message = message.data.replace(" ", ""); if (typeof message != 'object') { message = message.replace(/\ufeff/g, ""); //重点 var jj = JSON.parse(message); message = jj; } console.log("【websocket监听到消息】内容如下:"); console.log(message); }) // 打开信道 wx.connectSocket({ url: "wss://xxx.com:7788", }) },
服务端:
/*与网站的端口号不一致,与websocket地址的端口号保持一致*/ var socketServer = new Fleck.WebSocketServer("wss://0.0.0.0:7788"); /*发生错误自动重启*/ socketServer.RestartAfterListenError = true; socketServer.Start(socket =>{ socket.OnOpen = () =>{ new WebSocket().OnOpen(socket); }; socket.OnClose = () =>{ new WebSocket().OnClose(socket); }; socket.OnMessage = Message =>{ new WebSocket().OnMessage(socket, Message); }; socket.OnError = err =>{ throw err; }; });
小程序端没问题
服务端改为:
/*与网站的端口号不一致,与websocket地址的端口号保持一致*/ var socketServer = new Fleck.WebSocketServer("wss://0.0.0.0:7788"); socketServer.Certificate = new X509Certificate2(ssl证书信息); /*发生错误自动重启*/ socketServer.RestartAfterListenError = true; socketServer.Start(socket => { socket.OnOpen = () => { new ImServer.FleckWebSocket().OnOpen(socket); }; socket.OnClose = () => { new ImServer.FleckWebSocket().OnClose(socket); }; socket.OnMessage = Message => { new ImServer.FleckWebSocket().OnMessage(socket, Message); }; socket.OnError = err => { throw err; }; });