自定义协议

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

可靠性

心跳

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

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

重连

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

重复连接限制

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

消息缓存重发

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

安全

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

扩展性

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容