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