使用websocket当sse使用,其他一律走http请求,这样开发出来的im会不会好点?
使用WebSocket进行即时通讯(IM)应用的开发,并结合HTTP请求来处理非实时数据交换,是一种在现代Web应用中常见的混合策略。以下是对你提出的方案的评估:
WebSocket和SSE都用于从服务器向客户端推送数据,但它们之间有几个关键区别:
在你的场景中,如果IM应用需要实时双向通信(如发送和接收消息),那么WebSocket是一个更合适的选择。WebSocket的双向通信能力使得它能够比SSE更有效地处理IM应用的实时性需求。
在你的架构中,使用HTTP请求来处理非实时数据交换(如用户登录、注册、加载用户资料等)是合理的。HTTP请求非常适合这些类型的操作,因为它们通常不需要实时响应,并且可以利用HTTP协议的丰富性和成熟性(如缓存、身份验证等)。
使用WebSocket作为IM应用的主要通信方式,并结合HTTP请求来处理非实时数据交换,是一个合理且有效的策略。这种混合方法能够充分利用两种技术的优势,为最终用户提供更好的体验。然而,你也需要考虑到WebSocket带来的开发复杂性和潜在的性能挑战,并采取相应的措施来确保应用的稳定性和可扩展性。
4 回答13.3k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
2 回答4.1k 阅读✓ 已解决
3 回答8k 阅读
1 回答4.6k 阅读✓ 已解决
2 回答5.6k 阅读
4 回答929 阅读✓ 已解决
低频场景没问题,只要你自己能处理好时序问题就行(N 个 HTTP 请求彼此之间是独立的,从协议上无法保证顺序,但你业务上肯定是有顺序的)。
但话又说回来了,真的低频场景下 Long Polling 都够了,似乎 WebSocket 也没啥存在的必要 😂