作者:贝壳物联 | 更新时间:2016-12-08 | 浏览量:2287
设备稳定在线,是设备实时接收控制和上传数据(UDP和http协议除外)的基础,也是大家经常遇到和讨论问题,所有单独在此讨论,只做理论和机制说明,希望大家有好的经验和建议多多分享。
1、无连接状态——设备和服务器未发生任何关系;
2、连接状态——设备端已与服务器建立tcp连接,在建立连接后设备端将收到服务器发来的{"M":"WELCOME TO BIGIOT"}\n
欢迎信息;
3、登录状态——设备端与服务建立连接后发送checkin指令,并收到checkinok确认登录成功,此时设备显示在线状态;
1、TCP 8181 端口
此端口不向设备端发送心跳包,需设备端主动向服务报到,80s内服务器未收到客户端发来有效数据将主动关闭连接。
设备端可根据网络情况每隔30-60s向服务器发一次有效数据(符合通信协议的数据)。
此端口适合连续发送实时数据的设备。
2、TCP 8282 端口
此接口理论上每40s向设备端发送一个心跳包{"M":"b"}\n
,询问设备是否在线,设备端就进行有效应答,如果连续两次没有应答服务器将关闭连接。
服务器端为了节省资源,并非平均每40s发送一次心跳包,而是以你最后一次发送有效数据后的60s左右发送一次心跳包,在这次心跳后没有收到设备端应答,将在40s后发第二次,如果还未收到应答,将关闭连接。
此端口适合被动接受控制的设备。
3、websocket 8383 端口
1、服务器主动断开连接
2、设备端断电
3、设备端断网
①与路由器断开连接
②路由器与通信服务商断开连接
4、设备端主动checkout
①自己checkout自己
②checkout其他设备