微信小程序使用STOMP(WebSocket)
小程序的WebSocket API跟一般浏览器的有点差别,存在一些限制。本文主要涉及小程序使用STOMP时注意事项。
基础
小程序需要维护两个状态:
- 微信服务器登录状态
- 第三方(即我们自己服务器)的登录状态
小程序使有wx.request()来发起请求,使用wx.connectSocket()创建WebSocket连接
- wx.request()不会自动加上cookie来,可以自己加cookie到header或使用其他session标识
- wx.connectSocket()跟wx.request()类似,handshake时加上session标识
真实环境需要在微信平台预设相关域名,必须使用TLS,即使用https、wss协议。开发调试时可以不限制。
使用STOMP与WebSocket遇到的问题
问题1: 连接成功后,很快自动断开
因为刚开始使用STOMP时,同事在网上找到以下代码。出现问题我打开代码看了一下,刚看到肯定都觉得两个空方法很奇怪,原来不写会报错。打开stomp.js一看,很快找到原因,setInterval是用来发心跳包的,而小程序没有window对象。
网络文章
var Stomp =