微信小程序WebSocket相关问题说明

看本帖的前提是:你的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

posted @ 2017-02-28 18:23  千门初雪  阅读(5480)  评论(1编辑  收藏  举报