小程序支持WebSocket通信,但正式上线与程序开发的限制不同。
正式上线:
- 只能使用wss协议。
- WebSocket所请求的服务器地址必须为域名,且必须经过ICP备案。
- WebSocket所请求的服务器地址必须在小程序后台-设置-开发设置-服务器域名中进行配置。个人开发账号每个月可以修改5次。
程序开发:
- 可以使用wss/ws协议。
- WebSocket所请求的服务器地址可以为ip,不需要备案,也可以不设置在小程序后台的服务器地址列表中。但必须打开微信开发工具-详情-不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书的选项。
小程序的WebSocket通信使用发送-监听的模式。
- 调用wx.onSocketMessage来监听服务端返回的消息。
- 调用wx.connectSocket来建立连接。建立成功后,会返回一个SocketTask对象。
- 调用SocketTask.send来发送消息。其中发送的数据是string/ArrayBuffer类型。发送后,若服务端有数据返回,则监听函数会监听到并调用用户自定义的回调函数。
- 通信结束,调用SocketTask.close来关闭连接。