用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

2017-2-28 17:18:24 天下雪原创达人 造轮子 人生巅峰 楼主 26753
看本帖的前提是:你的WebSocket在小程序之外是正常可用的;因为WebSocket不是小程序独有的,所有大部分问题在网上是可以找到说明的,本帖只是聚合了一些小程序中使用WebSocket中遇到的问题及可能性,以便大家集中排除;

目前主要发现WebSocket相关的问题:


1:带了端口
(会出现调试可用,体验版不可用的情况,参考打开调试模式与非调试模式的区别)
2:证书有问题;
跳坑《一百》ssl证书相关问题(SSL相关问题请在这问)

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


https相关问题请查阅:http://www.wxapp-union.com/forum.php?mod=viewthread&tid=648

提示:wss必须在mp.weixin.qq.com后端内配置
QQ截图20170427180121.jpg

请保证wss域名符合https的要求;比如备案,不得带有端口等;


WebSocket在线测试工具:http://www.blue-zero.com/WebSocket/

相关文章:
微信小程序websocket端口配置
微信小程序入门《六》实例:WebSocket应用
微信小程序服务器配置-suse版:配置https,wss协议的websocket
Java后端实现websocket与微信小程序端连接简单例子
微信小程序和服务器通信-WebSocket
用nodejs快速实现微信小程序的websocket服务端
微信小程序开发系列分析《三》websocket
微信小程序和服务器通信-WebSocket ... ...
微信小程序 +nodejs+socket.io bug
微信小程序远程控制电脑屏幕,使用WebSocket
用Baas在腾讯云上开发小程序《一》:搭建API & WEB WebSocket 服务器 ...

微信小程序之WebSocket(附小程序和服务器源码)
小程序实现socket【workerman+thinkPHP做后端】
微信小程序聊天室(websocket )(PHP)

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


相关视频:

高级API视频:微信支付,模板消息,客服会话,获取openid


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

【websocket】后台域名已配置好,但websocket仍无法连接
@纽黑文  :url必须是备案备案备案的域名,且不能带端口。
即默认443端口。如果已经是443端口还是不行,
那么检查下443端口是否跟其他程序共用。

相关讨论:
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服务如图。
1.jpg
问题已解决,证书签发下来了,替换了就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

新增案例:
【websocket】只在手机调试模式下也正常运行
wss安全连接正确。
我连接socket服务器  wss:www.test.com:4431
在web开发工具正常运行,在手机调试模式下也正常运行,但关闭调试模式,不出现任何报错。也不能正常连接socket。
关闭调试模式,没有一条showModal执行
1.jpg
已经搞完了,不带端口。。但还是一样的问题,阿里云免费SSL证书,为什么只有在调试模式下才会运行socket的代码。。IOS 10.2.1
不带端口,但在nginx服务器做了一个反向代理带带端口的socket链接

答:过期的电影票
已经解决。一定的json字符串有问题。'{"id":1}'改为'{"id":“1"}'

新增案例:https和wss公用的是一套证书吗?
小程序的配置wss,和https的证书是共用的吗?如果不共用,请问该如何另外配置呢
答:xialeistudio
是一套
wss是security版本的websocket
websocket协议是通过Upgrade由http升级而来,所以证书是一套

新增案例:
websocket连接问题
Error during WebSocket handshake: Unexpected response code: 502

在web页面可以连接:
代码:
[AppleScript] 纯文本查看 复制代码
import VueWebsocket from "vue-websocket";
Vue.use(VueWebsocket, "wss://xxx.com/socket", {
    reconnection: false
});


服务端实现:
[AppleScript] 纯文本查看 复制代码
var http = require('http').Server(express)
var io = require('socket.io')(http)
 
io.on('connection', function (socket) {
    console.log('a client connected')
    socket.emit('news', { hello: 'world' })
})
 
http.listen(config.io.port, function () {
    console.log('listening on *:' + config.io.port)
})


小程序代码:
[AppleScript] 纯文本查看 复制代码
wx.connectSocket({
    url: 'wss://xxx.com/socket',
    success: function (res) {
       console.log(res)
    }
})


答:魔瘾者陈大星
解决了,在服务端用ws替换了socket.io,:)


有问题请在本站内搜索相应关键词,假如无法解决请在综合交流区内发帖咨询,发帖时请提供详细的问题描述、相关图片及代码。
在开发工具中websocket可以正常连接获取到服务器的消息,但是在真机上报错
Websocket连接打开失败,请检查 exception bad rsv 7, draft refuses handshakeinternal server error
学习了~~~~~~~~~~
发新帖
您需要登录后才可以回帖 登录 | 立即注册