socketTask.onMessage在真机上不触发,h5/模拟器上均触发
- 发布:2026-03-02 16:00
- 更新:39 分钟前
- 阅读:25
产品分类: uniapp/App
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: macOS Sequoia15.2 (24C101)
手机系统: iOS
手机系统版本号: iOS 15
手机厂商: 苹果
手机机型: iphone11promax
页面类型: vue
vue版本: vue3
打包方式: 离线
项目创建方式: CLI
CLI版本号: 3.0.0-alpha-4060120250318001
操作步骤:
预期结果:
socketTask.onMessage在真机上正常触发回调
socketTask.onMessage在真机上正常触发回调
实际结果:
socketTask.onMessage在真机上不触发,h5/模拟器上均触发
socketTask.onMessage在真机上不触发,h5/模拟器上均触发
bug描述:
socketTask.onMessage在真机上不触发,h5/模拟器上均触发
需要补充平台分类(安卓,ios)和hbuilderx版本信息。
欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
作为官方人员,我对这个 bug 反馈进行如下评审:
一、反馈内容完整性评估
| 检查项 | 状态 | 说明 |
|---|---|---|
| BUG 标题 | ✅ 完整 | 简洁明了,指出平台差异问题 |
| BUG 描述 | ⚠️ 不完整 | 仅一句话,未说明使用的 API 是 uni.connectSocket 还是 uni.connectSocketTask,也未提供代码示例 |
| 代码示例 | ❌ 缺失 | 没有提供任何可复现的代码片段 |
| 复现步骤 | ⚠️ 不清晰 | 仅一句话“socketTask.onMessage在真机上不触发”,未说明连接是否成功、是否发送了消息、服务器是否返回了数据等 |
| 预期结果 | ✅ 合理 | 真机上应正常触发回调 |
| 实际结果 | ✅ 描述清楚 | 真机不触发,H5/模拟器正常 |
| 分类信息 | ✅ 完整 | 提供了平台、系统版本、HBuilderX版本、Vue版本等 |
二、问题是否成立
根据知识库内容:
- WebSocket 相关 API 在 iOS 真机上是支持的,文档中未提及 iOS 平台存在
socketTask.onMessage不触发的已知限制。 - 但用户未提供代码,无法判断是否使用了已废弃的
uni.onSocketMessage,或是否正确使用了SocketTask。 - 对话知识库中曾出现“uni.onsocketmessage在h5上可以接收到服务器传来的消息,但是运行到鸿蒙真机上接收不到了”的问题,官方建议“提供详细信息,具体怎么使用的,也升级下 hbuilderx 版本到最新版”。
因此,问题可能成立,但当前信息不足以确认是否为 bug,需进一步补充。
三、是否为基础概念问题
- 用户未提供代码,无法判断是否误用了已废弃的 API(如
uni.onSocketMessage)。 - 也可能是未正确监听
onOpen或服务器未返回数据导致onMessage未触发。 - 也不排除 iOS 真机调试环境问题(如未信任设备、未开启网络权限等)。
四、官方建议
请用户补充以下内容以便进一步定位问题:
- 提供最小可复现代码,包括:
uni.connectSocket或uni.connectSocketTask的完整调用onOpen、onMessage、onError的监听代码
- 确认是否已升级 HBuilderX 至最新正式版(当前为 4.87)
- 确认 iOS 真机是否已信任调试设备,并检查控制台是否有报错
- 确认服务器是否已发送消息,建议使用抓包工具(如 Charles)验证
五、结论
当前反馈信息不足以确认是否为 bug,建议用户补充代码和复现步骤后再行评估。如确认是平台兼容性问题,我们将记录为 bug 并跟进修复。
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
无法重现 bug,我使用 HBuilderX alpha 5.01 测试 ios 真机、安卓真机标准基座,点击发送消息,都可以打印 发送成功、接收到消息的打印。请提供明确操作步骤,并自查你的问题描述。