【发布时间】:2021-10-24 17:10:31
【问题描述】:
对于制作聊天应用程序,标准建议似乎是使用 Websocket 从服务器接收实时数据,而且似乎大多数人都是这样做的。但我不明白的是为什么生产聊天应用程序通过标准 AJAX 请求向服务器发送消息,而不是使用 WS。
Discord 和 Slack 的浏览器应用程序,尽管它们保持 WS 连接,但应用程序在发送聊天消息时只是将 POST 发送到其端点之一。
不是生产聊天应用,但 ApolloClient 的 useSubscription 使用 WS 从服务器接收事件,但变异(这是我们用来发送消息的)作为标准 AJAX 发送。
对于聊天应用程序,如果我们有一个与服务器的专用 WS 连接,使用它来发送任何数据不是更快/更有效吗?我认为通过标准 AJAX 发送数据(聊天应用程序的聊天消息)是有正当理由的,但是 SSE 不是比 WS 更好/更少资源密集型的选择吗?
【问题讨论】:
-
但是这个问题对于 Stack Overflow 的问答形式来说过于宽泛——我们不可能回答这个问题,因为您在没有了解这些供应商的软件设计过程的情况下提出了这个问题——即使这样,这个信息可能被列为商业机密或 NDA,任何具有任何相关知识的人都不能在此披露。投票结束
-
但 EvenSource 得到 97% 的支持...此外,Discord 使用 WS 用于 Server->Client,但 AJAX 用于从 Client->Server 发送文本消息,因此没有 WS 的浏览器支持,不能polyfill 不能用Discord,不是吗?
-
您是否删除了您的第一条评论,因为您意识到它是多么离题?你能取消标记我的帖子吗?我真的认为这是一个不违反任何社区准则的合法问题
标签: websocket apollo-client server-sent-events