1

看本帖的前提是:你的WebSocket在小程序之外是正常可用的;因为WebSocket不是小程序独有的,所有大部分问题在网上是可以找到说明的,本帖只是聚合了一些小程序中使用WebSocket中遇到的问题及可能性,以便大家集中排除;

目前主要发现WebSocket相关的问题:
1:带了端口(会出现调试可用,体验版不可用的情况,参考打开调试模式与非调试模式的区别
2:证书有问题;

官方文档地址:https://mp.weixin.qq.com/debu...

一个微信小程序同时只能有一个 WebSocket 连接,如果当前已存在一个 WebSocket 连接,会自动关闭该连接,并重新创建一个 WebSocket 连接。
tip: createSocket 链接默认和最大超时时间都是 60s
tip: 网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版。

相关文章:
微信小程序websocket端口配置
微信小程序入门《六》实例:WebSocket应用
微信小程序服务器配置-suse版:配置https,wss协议的websocket
Java后端实现websocket与微信小程序端连接简单例子
微信小程序和服务器通信-WebSocket
用nodejs快速实现微信小程序的websocket服务端
微信小程序开发系列分析《三》websocket
微信小程序和服务器通信-WebSocket ... ...

相关demo:
基于websocket的微信聊天室小程序webSocket的实践
树莓派照片监控,webSocket,mqtt
Wechat-websocket(H5与微信小程序WebSocket跨端聊天室)
websocket应用简易聊天室;基于node和websocket
TCP/IP长连接服务,支持微信小程序websocket

相关问题:
小程序,预览版websocket测试通过,可是体验版没反应
微信小程序websocket真机没反应

相关讨论:
Q:开发工具上连接含有端口的地址没有问题,一到真机上就提示:“connectSocket:fail url not in domain list”。

A:不能使用带端口的地址。

相关讨论一:
websocket 连接问题 websocket连接 断了。是否会自动重连。。还是重连机制需要我自己来维护?

问题解决了。连不上是因为加了端口

发不了数据是因为 要发out 不应该必u16a
var out = new ArrayBuffer(length);
var u16a = new Uint8Array(out);

相关讨论二:
websocket -9807 错误怎么破? 使用websocket 出现-9807错误 在6.5.3上都不出现,在最新版本6.5.4上出现

服务器证书不对 ios 高版本不能使用startSSL的免费证书

相关讨论三:
websocket在真机上报错的问题使用websocket的时候,在开发者工具里开发和调试一切正常,真机预览的时候就报错了,无法连接到我的socket服务如图。
图片描述

问题已解决,证书签发下来了,替换了就OK了,临时的证书真机上就报错了
ssl证书相关问题解决贴:ssl证书相关问题(SSL相关问题请在这问)

相关讨论四:
websocket手机端连接无反应,无回调
用websocket连接wss网页,已经确认在合法列表里面,端口为手动是的18080,连接方式为

wx.connectSocket({
    url: 'wss://www.*****.cn:18080'
    })

回调函数为

wx.onSocketError(function(res){
wx.onSocketClose(function(res) {
wx.onSocketOpen(function(res) {

都没有走到,但是如果手机端打开调试的话,则可以正常使用,在开发工具的话也可以正常使用,但是直接预览以及体验者的方式进入的话,都无法正常使用
在开发工具那边配置的开发环境不校验请求域名以及TLS版本的话,没有打勾

已解决,原因为url不能带端口号,服务端需监听使用默认的443端口

相关讨论五:
Android手机能链接websocket,可是IOS不行,如何解决?
Android手机能链接websocket,且正常收发信息的
可是IOS不行,如何解决?
打印出来的信息是:"OSStatus"错误-9801

加了TLS v1.2就可以了

相关讨论六:
networkTimeout 设置不起作用
设置了connectSocket=300000, 但是任然在60秒就断开连接

最长只能是 60s


chuxue2005
199 声望68 粉丝