小程序 websocket

小程序 websocket,第1张

微信的 WebSocket 接口和HTML5的 WebSocket 基本一样,是HTTP协议升级来的,做为一个新的 Socket 在B/S上使用,它实现了浏览器与服务器全双工通信。

因为这里是做小程序,所以就不对 WebSocket 的底层和协议做过多的说明了,只是稍微介绍一下。想了解详细的 WebSocket 可以参考如下:

具体方法如下:

创建一个 WebSocket 连接。

监听WebSocket连接打开事件。

监听WebSocket错误。

通过 WebSocket 连接发送数据,需要先 wx.connectSocket ,并在 wx.onSocketOpen 回调之后才能发送。

监听WebSocket接受到服务器的消息事件。

关闭 WebSocket 连接。

定时心跳,按各种情况设置为10-20秒。心跳作用:通知后台保活,如果停止心跳消息,后台会主动断开,走断开流程。

使用过程中,可能因为网络问题,导致websocket断开连接,首先更具业务需求,判断是否需要重连,如果要重连不建议立刻重连,可做一个延迟 *** 作,再进行重连。

环境:消息推送需要使用长联讯,所以采用websocket

遇见问题:微信开发者工具可以使用websocket,但是使用手机真机调试websocket无响应

解决思路:

一.确保websocket调用api的正确使用顺序

二.服务器环境的搭建以及合法域名的校验

三.开发者后台要配置wss和ip白名单

第一步:确保API的正确调用

二.服务器搭建以及合法域名的校验以及wss的配置

1.这里提到的服务器搭建,主要是因为在微信小程序中,websocket支持的一定是wss的通信协议,当然也不是说你用ws不行,但是我感觉测试可以,如果要配置上线的话,还是需要使用wss的!可以在后台管理界面进行配置

---开发---开发设置---服务器域名设置

切记:一个月只有五次的修改机会!慎重哦

修改成功后,可以打开开发工具的详情页面进行查看,来查看是否配置成功

2.合法域名的校验

众所周知,小程序在开发过程中,只要你点击不校验合法域名,就可以不进行跨域处理,但是如果要求上线,一定要进行配置,防止出现跨域问题。然后合法域名也是要求https,需要携带证书!

三.会遇到的问题!

当你配置完所有以后,你会发现在开发环境下,你是可以使用websocket的,但是当你选择真机测试的时候,你会发现你的websocket失效了,你如果打开两个管理控制台,你会发现,开发工具的上面, 长联讯 的 属性type :为websocket,但是真机环境下的 长联讯 的 属性type :为xhr!

当时我以为是我api调用的问题,查阅了好多资料,都没得到解决!最后在微信开发社区里面找到了和我遇见一模一样问题的人!询问以后才得知解决办法!!!说实话,解决方法,让我有点哭笑不得

是不是和我遇到的一样!!!

四.解决办法!!!

直接上线就可以了,线上环境就可以成功了!如果觉得直接上线不好!你可以提交为体验版本即可

综上所述...websocket在真机上和开发工具上的不一致,就能得到解决了【点击了解更多加盟项目】

在小程序开发过程中,经常需要 消息推送 、 即时通讯 的功能支持,小程序提供了WebSocket的接口以满足以上需求,今天我们就来讲讲小程序中的WebSocket接口的使用

一般情况下使用WebSocket使用是这样的

那如果我们想同时建立多个Socket连接该怎么办?接着往下看

这里必须用到 SocketTask 接口,通过 wx.connectSocket() 接口创建返回

这样就可以实现多个websocket同时通信啦,不过有一点要注意

好啦,以上就是我本次分享的全部内容啦,如果你觉得我的文章对你有一丢丢帮助,那么请不要吝啬你的赞

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11621868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存