看本帖的前提是:你的WebSocket在小程序以外是正常可用的;由於WebSocket不是小程序獨有的,全部大部分問題在網上是能夠找到說明的,本帖只是聚合了一些小程序中使用WebSocket中遇到的問題及可能性,以便你們集中排除;php
目前主要發現WebSocket相關的問題:
1:帶了端口(會出現調試可用,體驗版不可用的狀況,參考打開調試模式與非調試模式的區別)
2:證書有問題;html
官方文檔地址:https://mp.weixin.qq.com/debu...node
一個微信小程序同時只能有一個 WebSocket 鏈接,若是當前已存在一個 WebSocket 鏈接,會自動關閉該鏈接,並從新建立一個 WebSocket 鏈接。
tip: createSocket 連接默認和最大超時時間都是 60s
tip: 網絡請求的 referer 是不能夠設置的,格式固定爲 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid} 爲小程序的 appid,{version} 爲小程序的版本號,版本號爲 0 表示爲開發版。ios
相關文章:
微信小程序websocket端口配置
微信小程序入門《六》實例:WebSocket應用
微信小程序服務器配置-suse版:配置https,wss協議的websocket
Java後端實現websocket與微信小程序端鏈接簡單例子
微信小程序和服務器通訊-WebSocket
用nodejs快速實現微信小程序的websocket服務端
微信小程序開發系列分析《三》websocket
微信小程序和服務器通訊-WebSocket ... ...web
相關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:不能使用帶端口的地址。api
相關討論一:
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