自定义协议

作者: coderlan | 来源:发表于2017-07-04 00:57 被阅读0次

自定义协议栈需要着重考虑以下几个方面:

可靠性

心跳

主要用于检测建立通信的对方是否正常。

  1. 客户端网络处于空闲状态超过T,则需要主动发送心跳给服务器端;
  2. 客户端如果超过时间T,没有收到服务器端的心跳回复或者业务数据,则心跳失败计数+1;
  3. 服务器端在超过时间T后没有收到客户端心跳,则客户端心跳失败计数+1;
  4. 心跳计数到达N之后,则关闭链路,重新连接或者等待被重新连接。

重连

重新连接需要有间隔,并不是马上、毫无间隔进行重连。

重复连接限制

正常情况下,不应该允许客户端重复连接,防止反复连接导致服务器资源耗尽。

消息缓存重发

当链路中断了,则缓存在消息队列中的消息,则需要保存起来,等待重新连接之后,进行发送;
同时避免消息队列无限膨胀,则需要设置消息队列大小上限,超过了则不允许添加新消息。

安全

安全策略包括ip白名单、数据加密等等。

扩展性

增加保留字段、业务域字段等等,避免因为协议变更,导致原先代码完全不可用。

相关文章

网友评论

    本文标题:自定义协议

    本文链接:https://www.haomeiwen.com/subject/wdhthxtx.html