当前位置: 首页 > 知识库问答 >
问题:

websocket - SSE是否更适合开发im?

梁昊天
2024-05-31

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

http发送消息,sse推送

共有3个答案

苏选
2024-05-31

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

https://gitee.com/shy9120/group_chat

宋丰
2024-05-31

不适合,sse不能主动推送

严宇
2024-05-31

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

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

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

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

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

 类似资料:
  • 问题内容: 我想使用需要不时进行排序的数据结构。数据结构的大小几乎不会超过1000个项目。 哪一个是更好的- 或者? 哪种排序算法更好用? 问题答案: 在Java 7之前,它没有什么区别,因为它将列表的内容转储到数组中。 在Java 8中,使用会稍微快一些,因为它将调用并具有专门的版本,该版本可以直接对后备数组进行排序,从而保存副本。 因此,根据Java版本的不同,底线更好,因为它可以提供相似或更

  • 我正试图通过服务提供者API在运行时由加载一个jar。然而,结果却是失败的。 以下是我所做的: null 我尝试了抽象类而不是我的SPI接口的接口,当我无法实现我的目标时,将它改回接口; 我已尝试获取资源并将我的作为输入参数传递,但没有工作; 我尝试了Apache实现的,但它也找不到适当的资源; 我的问题是如何通过从外部jar加载资源?SPI可能是一种解决方案吗?

  • 问题内容: 用Java编写了一个随机模拟,该模拟从磁盘上的几个CSV文件加载数据(总计约100MB),并将结果写入另一个输出文件(数据不多,只有布尔值和几个数字)。还有一个参数文件,对于不同的参数,模拟输出的分布可能会发生变化。为了确定正确/最佳的输入参数,我需要针对多个输入参数配置运行多个模拟,并查看每组中输出的分布。根据参数和随机性,每次仿真需要0.1-10分钟。 我一直在阅读有关Hadoop

  • 区分度不高的字段不适合做索引,因为索引页是需要有开销的,需要存储的,不过这类字段可以做联合索引的一部分。

  • 我无法理解HTML5s服务器发送的事件是否真的适合ReST体系结构。我知道并非HTML5/HTTP的所有方面都需要适合ReST架构。但我想从专家那里知道HTTP的哪一半是SSE(ReSTful的一半还是另一半!)。 一种观点是它是ReSTful的,因为客户端向服务器发出了一个“初始”HTTP GET请求,其余的只能看作是不同内容类型的部分内容响应(“文本/事件流”) 发送的请求不知道有多少响应将作

  • 本文向大家介绍node.js适合游戏后台开发吗?,包括了node.js适合游戏后台开发吗?的使用技巧和注意事项,需要的朋友参考一下 网站服务器和游戏服务器是怎么样联系到一起的? 1. 游戏分很多种,咱们先来看看MMORPG。 再怎么简单的RPG服务器都免不了处理多人交互的情形,上百人在同一个场景里面,每个客户端都需要收到其他所有人的操作信息。 其次,用户的操作是非常频繁的,一般的服务器倾向于持有长