最近在做 IOT 的项目,里面有个小程序要用到 webSocket ,借这个机会,封装了一个 uniapp小程序 适用的 Socket 类,包括断线重连,心跳检测等等,具体实现如下。
直接实例化封装的 socket 类,调用 initSocket 初始化就行了,当收到消息的时候,会触发全局 $emit 事件,只需要使用 $on 监听 message 事件就行。
我这边在 globalData 里面定义了 socketObj 全局变量,在首页 onShow 生命周期里面判断当前是否已经初始化了 socket 实例,再进行 *** 作。
home.vue
断线会自动重连。
如果看了觉得有帮助的,我是@ 鹏多多11997110103 ,欢迎 点赞 关注 评论;
END
往期文章
个人主页
APP-2每1分钟发一个心跳包给APP-1。APP-1如果超过1分钟没收到,可以累计记录x++,收到心跳包x清零。当x=2时,可以发送一个ack包给APP-2,如果APP-2还是没有回应,即x=3时,可以确定APP-2down掉。x在1~3直接时是网络阻塞。具体 *** 作时间还需要自行确定。首先此类程序是不可以单独运行在本机的,因为无论是主机,死机,关机,重启哪种状态,程序都是属于不可运行状态。推荐做法
A,B两台主机
例如A为服务器,B为监控器
A上面运行程序,程序主要负责监听系统的关机,重启事件,以每一分钟发送一次为一个周期(一分钟为例子,可以自己设置时间间隔的长度),监听到的关机或重启事件发送到B主机(如果没有关机或重启,则也要发送一次,向B主机报告当前运行状态为正常),这样就能得到了关机或重启的事件了,但如果在一个周期内B监控器没有得到A主机发送过来的任何数据,则可以判定为死机或网络故障
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)