对接NetPos商户在测试设备存活接口中出现的问题如下:
我司提供的测试Demo中没有检测建立连接后检测心跳的功能 ,商户的需求是获取pc端和pos链接的心跳频率,当心跳停止时,商户方自动发起请求再次建立链接。
解决方法:
a.商户方定时多频发送请求设备存活接口(暂行解决方案)
b.Demo中接入心跳频率检测的包,支持此功能(后期完善产品方案)
c.商户方通过webSocket协议中的ping方法请求pos,pos返回响应的pong数据(目前没有返回,需要后期完善开 发,此方法会增加双方对接难度)
PS:
a.长连接
首先这里所说的连接是指网络传输层的使用TCP协议经过三次握手建立的连接;长连接是指建立的连接长期保持,不管此时有无数据包的发送;有长连接自然也有短连接,短连接是指双方有数据发送时,就建立连接,发送几次请求后,就主动或者被动断开连接。
b.心跳
心跳
心跳这个名字比较形象,就像人体心跳一样,是用来检测一个系统是否存活或者网络链路是否通畅的一种方式,其一般做法是定时向被检测系统发送心跳包,被检测系统收到心跳包进行回复,收到回复说明对方存活。
c.长连接和心跳
心跳和长连接在一起介绍的原因是,心跳能够给长连接提供保活功能,能够检测长连接是否正常(这里所说的保活不能简单的理解为保证活着,具体来说应该是一旦链路死了,不可用了,能够尽快知道,然后做些其他的高可用措施,来保证系统的正常运行)。
d.长连接的优势
减少连接建立过程的耗时
大家都知道TCP连接建立需要三次握手,三次握手也就说需要三次交互才能建立一个连接通道,同城的机器之间的大概是ms级别的延时,影响还不大,如果是北京和上海两地机房,走专线一来一回大概需要30ms,如果使用长连接,这个优化还是十分可观的。
方便实现push数据
数据交互-推模式实现的前提是网络长连接,有了长连接,连接两端很方便的互相push数据,来进行交互。
e.长