实际App开发过程中,有什么技术是可以替代Websocket的?

Websocket有很多应用场景,比如在线聊天、消息订阅、协同办公、股价更新、互动直播、在线教育、物联网。但是实际开发中这些场景用到Websocket的却不多,这是为什么?例如,

在线聊天:微信、QQ、IMessage等,都不是用Websocket通信的。
消息订阅:微博、知乎、抖音的 粉丝点赞提醒,也不是用Websocket。

实际开发中使用的是什么技术实现客户端和服务器端双向通信的能力的? 求有App开发经验的大佬解答。

阅读 7.8k
4 个回答

直接基于tcp ,写一套私有应用层通信协议

那就直接撸 TCP 或者 UDP 了。

websocket其实在你说的这些场景里用得都蛮多了,只不过一些大厂可能为了安全等一些原因直接用tcp实现自己的一套协议。而一般的公司可能就直接用websocket来做了,因为可以不用再去自己单独去写一遍客户端解析协议了。

websoket 是浏览器 API,由 JavaScript 调用,基于 TCP/IP(HTTP 协议的底层),实现实时双向通信。Web 应用基于的 HTTP 协议是无状态的,是请求-响应模式的,是单方向的。如果需要服务器通知浏览器(客户端),以前的技术是浏览器定时轮询服务器。websocket 比这种方式性能更好。

至于 QQ 之类的 IM 软件为啥不用 websocket,因为 QQ 不是基于浏览器的,他是 windows 本地应用,跟服务器通信没有走 HTTP 协议,而是直接走 TCP/IP 协议,因此是 socket 通信。

总结一下:websocket = web + socket,主要用于浏览器的前端程序。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题