SSE是否更适合开发im?

像chatgpt这些对话功能都是基于sse开发,那是否再延伸下,用sse开发im?适合吗?

http发送消息,sse推送

阅读 801
avatarAI BotBETA

SSE(Server-Sent Events)并不特别适合开发完整的IM(即时通讯)系统。虽然SSE可以用于从服务器向客户端推送消息,但它有一些局限性,特别是在处理实时通讯和复杂交互的场景中。

首先,SSE是一个单向的通信协议,它只支持从服务器到客户端的消息推送。在IM系统中,通常需要双向通信,即客户端和服务器之间都能发送和接收消息。SSE不能满足这种双向通信的需求。

其次,SSE虽然比长轮询更高效,但在处理大量并发连接和频繁的消息推送时,可能会遇到性能瓶颈。IM系统通常需要处理大量的并发用户连接和实时消息传输,因此SSE可能不是最佳选择。

对于像ChatGPT这样的对话功能,SSE可以作为其中一种实现方式,用于将服务器的响应实时推送给客户端。但是,对于完整的IM系统,更常见的做法是使用WebSocket等双向通信协议,它支持客户端和服务器之间的双向通信,并且具有更好的性能和扩展性。

总结来说,虽然SSE在某些情况下可以用于推送消息,但对于开发完整的IM系统来说,它可能不是最适合的选择。更好的方案是使用支持双向通信的协议,如WebSocket。

2 个回答

不适合,sse不能主动推送

还是看场景吧,目前的chatGPT对话模式,用sse足够了,大模型出回答慢得很,但凡快一点,直接HTTP和websocket的体验都要更好。
再说回来IM,IM涉及的单聊、群聊、文本、附件等等,如果只是简单的文本通信,sse配合http-post也还差不多,但是牵扯到更复杂的业务,或者更高的性能上,sse只能支持字符串输出的弊端就会凸显,并不一定非常合适,我自己之前写过一个简单的群聊IM,同时支持了 轮询、sse和websocket的模式(虽然websocket的模式也是当sse用了,统一用http发消息,对于简单系统来说更方便)。

https://gitee.com/shy9120/group_chat

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