C***@163.com
C***@163.com
  • 发布:2019-11-30 15:46
  • 更新:2019-12-02 17:04
  • 阅读:2778

【报Bug】uni-app 真机测试 socketTask = uni.connectSocket 可以成功,但是socketTask.onOpen 监听不到连接成功

分类:nvue

uni-app 真机测试 socketTask = uni.connectSocket 可以成功,但是socketTask.onOpen 监听不到连接成功

[内容]
后台采用node+ts+socket.io
本地demo在浏览器运行没问题
在真机测试报错如图中控制台所示

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
HBuilderX

[IDE版本号]
2.4.2.20191115

[windows版本号]
win10

uni-app运行环境说明

nvue项目 采用uniapp渲染模式

[Android版本号]
8.1.0

[手机型号]
vivox9s

[可重现代码片段]

前端:
const msg = ‘要发送的数据’
var SocketTask1 = uni.connectSocket({
url: "ws://localhost:3000/ws",
success: function(e) {
console.log(JSON.stringify(e));
}
});
SocketTask1.onOpen(function(){
console.log("连接成功")
SocketTask1.send({
data: msg,
success(res) {
console.log('发送成功')
console.log(res)
},
fail(err) {
console.log('发送失败')
console.log(err)
}
})
});
SocketTask1.onMessage(function(){
console.log("接收数据")
});
SocketTask1.onError(function(){
console.log("连接错误")
});
SocketTask1.onClose(function(){
console.log("连接关闭")
});

后台:
import * as Koa from 'koa'
let logger = require('koa-logger')
let koaBody = require('koa-body')
const http = require('http')

let path = require('path')

const app = new Koa()
const server = http.Server(app)

server.listen(3000)

const io = require('socket.io')(server)

app.use(logger())
app.use(koaBody())

app.on('error', err => {
console.log('server error', err)
});

io.of('/ws').on('connection', (socket: any) => {
console.log('有用户连接了')
socket.on('disconnect', () => {
console.log('用户'+ socket + '断开连接')
})

socket.on('msg', (data: any) => {  
    console.log('获取到数据了')  
    console.log(data)  
})  

})

联系方式

Catlina1996@163.com

[QQ]
120315864

2019-11-30 15:46 负责人:无 分享
已邀请:
C***@163.com

C***@163.com (作者) - 只会写bug的程序员

官方给出解释说在hbuilderx的2019年10月14更新版本解决了这个问题 但是在我这问题重现了

DCloud_UNI_GSQ

DCloud_UNI_GSQ

你真的用的:url: "ws://localhost:3000/ws" 吗?

C***@163.com

C***@163.com (作者) - 只会写bug的程序员

这里是详细代码截图 浏览器是demo例子 是没问题的 编辑器中是app端
接口是内部地址 无法对外访问

该问题目前已经被锁定, 无法添加新回复