5***@qq.com
5***@qq.com
  • 发布:2025-11-06 16:01
  • 更新:2025-11-06 20:41
  • 阅读:49

Websocket发消息,内置发出外部浏览器才能看到,反之,咋回事啊

分类:uni-app

用websocket写了个简单的聊天工具,内置发了消息不显示,用外部浏览器才能看到,反之,如图

2025-11-06 16:01 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

没看明白你的问题,请详细描述一下,单看你这图片上的文字看不出来你的问题

  • 5***@qq.com (作者)

    这样的,我用本地node做的websocket作为服务器,uniapp这边是一个小程序的聊天界面,在uni的内置浏览器聊天界面上,聊天发送,this.socket.onMessage回调,给数组push了回调值,但却不显示聊天内容,在外置浏览器打开这个聊天界面,聊天发送,内置显示,内置界面发送,外置显示,但都是自己本界面不显示聊天内容

    2025-11-06 20:26

5***@qq.com

5***@qq.com (作者) - Gemi

这是原码:
onLoad() {
const socketUrl = 'ws://localhost:3000';
// 建立WebSocket连接
this.socket = uni.connectSocket({
url: socketUrl,
success: () => {
console.log('WebSocket连接成功');
}
});

// 接收来自服务器的消息
this.socket.onMessage(async(res) => {
console.log(res)
await this.handleMessage(res.data)
});
}
methods:{
// 发送消息
sendMessage() {
if (this.inputMessage.trim() !== '') {
const message = {
from: 'user',
text: this.inputMessage
};
console.log(this.messages)
//this.messages.push(message);
// 不可能发送的时候,强行加入吧,应该是回调后载入,对吧
this.socket.send({
data:JSON.stringify(message)
})
this.inputMessage = '';
}
},
// 处理接收到的数据,例如转换为JSON格式等
handleMessage(d) {
const data = JSON.parse(d)
const arr = [data];
//console.log(arr)
this.messages.push(arr[0]);
console.log(this.messages)
this.scrollIntoViewId = msg-${this.messages.length - 1};
// 根据消息内容更新数据等操作
}
}

要回复问题请先登录注册