没有合适的资源?快使用搜索试试~ 我知道了~
搭建websocket消息推送服务,必须要考虑的几个问题
8 下载量 48 浏览量
2020-10-15
09:20:11
上传
评论 1
收藏 154KB PDF 举报
温馨提示


试读
3页
面对各种新场景对websocket功能和性能越来越高的需求,不同的团队有不同的选择,下面给大家分享构建websocket服务时必须要考虑的一些技术特性以及能显著提高用户体验的功能
资源推荐
资源详情
资源评论















搭建搭建websocket消息推送服务消息推送服务,必须要考虑的几个问题必须要考虑的几个问题
面对各种新场景对websocket功能和性能越来越高的需求,不同的团队有不同的选择,下面给大家分享构建
websocket服务时必须要考虑的一些技术特性以及能显著提高用户体验的功能
近年,不论是正在快速增长的直播,远程教育以及IM聊天场景,还是在常规企业级系统中用到的系统提醒,对websocket的需
求越来越大,对websocket的要求也越来越高。从早期对websocket的应用仅限于少部分功能和IM等特殊场景,逐步发展为追
求支持高并发,百万、千万级每秒通讯的高可用websocket服务。
面对各种新场景对websocket功能和性能越来越高的需求,不同的团队有不同的选择,有的直接使用由专业团队开发的成熟稳
定的第三方websocket服务,有些则选择自建websocket服务。
作为一个具有多年websocket开发经验的老程序猿,经历了GoEasy企业级websocket服务从无到有,从小到大的过程,此文
是根据过去几年在GoEasy开发过程中踩过的坑,以及为众多开发团队提供websocket服务、与众多开发者交流中的总结的一
些经验和体会。
这次主要从搭建websocket服务的基本功能和特性方面做一些分享,下次有机会再从构建一个高可用websocket时要面对的高
并发,海量消息,集群容灾,横向扩展,以及自动化运维等方面进更多的分享。
以下几点是个人认为在构建websocket服务时必须要考虑的一些技术特性以及能显著提高用户体验的功能,供各位同学参考:
1.建立心跳机制
心跳机制几乎是所有网络编程的第一步,经常容易被新手忽略。因为在websocket长连接中,客户端和服务端并不会一直通
信,如果双方长期没有沟通则都不清楚彼此当前状态,所以需要发送一段很小的报文告诉对方“我还活着”。另外还有两个目
的:
服务端检测到某个客户端迟迟没有心跳过来可以主动关闭通道,让它下线;
客户端检测到某个服务端迟迟没有响应心跳也能重连获取一个新的连接。
2.建立具有良好兼容性的客户端SDK
虽说现在主流浏览器都支持websocket,但在编码中还是会遇到浏览器兼容性问题,而且通过websocket通信的客户端早已不
仅限于各种web浏览器,还包括越来越多的APP,小程序。因此就要求构建的websocket服务必须能够很友好的支持各种客户
端。最好的方式就是构建一个能够兼容所有主流浏览器、小程序和APP,以及uni-app、vue、react-native等目前常见的各种
前端框架的客户端SDK,这样不论公司的各个项目使用什么样的前端技术,都能够快速的集成websocket服务。
3.断网自动重连和消息补发机制
移动互联网时代,终端用户所处的网络环境多样且复杂,如用户进出电梯,出入地下室或地铁等网络不稳定的场所,或其他原
因导致的网络不稳定都是很常见的场景。因此,一个可靠的websocket服务必须具备完善的断网自动重连机制。确保断网后,
网络一旦恢复,能第一时间自动重新建立长连接,并且能够立即补发在网络不稳定期间发送的消息。
4.离线消息
基础的Websocket通讯从技术上来说,消息送达的前提条件就是建立起一个长连接,没有建立网络连接就来讨论通讯那是耍流
资源评论


weixin_38746515
- 粉丝: 15
- 资源: 946
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
