像chatgpt这些对话功能都是基于sse开发,那是否再延伸下,用sse开发im?适合吗?
http发送消息,sse推送
SSE(Server-Sent Events)并不特别适合开发完整的IM(即时通讯)系统。虽然SSE可以用于从服务器向客户端推送消息,但它有一些局限性,特别是在处理实时通讯和复杂交互的场景中。
首先,SSE是一个单向的通信协议,它只支持从服务器到客户端的消息推送。在IM系统中,通常需要双向通信,即客户端和服务器之间都能发送和接收消息。SSE不能满足这种双向通信的需求。
其次,SSE虽然比长轮询更高效,但在处理大量并发连接和频繁的消息推送时,可能会遇到性能瓶颈。IM系统通常需要处理大量的并发用户连接和实时消息传输,因此SSE可能不是最佳选择。
对于像ChatGPT这样的对话功能,SSE可以作为其中一种实现方式,用于将服务器的响应实时推送给客户端。但是,对于完整的IM系统,更常见的做法是使用WebSocket等双向通信协议,它支持客户端和服务器之间的双向通信,并且具有更好的性能和扩展性。
总结来说,虽然SSE在某些情况下可以用于推送消息,但对于开发完整的IM系统来说,它可能不是最适合的选择。更好的方案是使用支持双向通信的协议,如WebSocket。
还是看场景吧,目前的chatGPT对话模式,用sse足够了,大模型出回答慢得很,但凡快一点,直接HTTP和websocket的体验都要更好。
再说回来IM,IM涉及的单聊、群聊、文本、附件等等,如果只是简单的文本通信,sse配合http-post也还差不多,但是牵扯到更复杂的业务,或者更高的性能上,sse只能支持字符串输出的弊端就会凸显,并不一定非常合适,我自己之前写过一个简单的群聊IM,同时支持了 轮询、sse和websocket的模式(虽然websocket的模式也是当sse用了,统一用http发消息,对于简单系统来说更方便)。
1 回答1.7k 阅读✓ 已解决
2 回答1.5k 阅读
2 回答1.1k 阅读
732 阅读
720 阅读
636 阅读
2 回答587 阅读
不适合,sse不能主动推送