if (typeof socketUrl != "string") {
throw new Error("TypeError: wsUrl 类型错误!");
}
if (!isWsURL(socketUrl)) {
throw new Error("TypeError: wsUrl 格式错误!");
}
this.socketUrl = socketUrl;
console.log("执行connect");
this.socketTask = uni.connectSocket({
url: socketUrl,
header: {
...header,
},
complete: () => {
console.log("执行connect complete");
},
fail(error) {
console.log("执行connect error");
console.log(error);
},
});
this.socketTask.onMessage(this.onMessage.bind(this));
this.socketTask.onOpen(this.onOpen.bind(this));
this.socketTask.onClose(this.onClose.bind(this));
this.socketTask.onError(this.onSktError.bind(this));
return this.socketTask;
3 个回复
9***@qq.com (作者)
不要沉,顶起来
DCloud_iOS_WZT
你的url发我试下
9***@qq.com (作者)
不好意思,目前没有测试服务器。同样的代码安卓是可以的,ios不行
2022-07-11 08:46
DCloud_iOS_WZT
回复 9***@qq.com: 完整的示例代码发一下?
2022-07-11 11:43
9***@qq.com (作者)
解决了,websocket 链接 url 不能有中文,由于测试用户名是写死的,所以iOS表现连接不成功,没有走回调。记录一下,有遇到同样问题的小伙伴,直接 url = encodeURI(url)
2022-07-11 14:03
1***@qq.com
你好你好可以详细描述下怎么解决的嘛
9***@qq.com (作者)
connectSocket 的时候,url 字符串做一次编码(encodeURI)
2022-08-04 16:03