多种事件类型的单一服务器发送事件连接

Single Server-Sent-Event connection for multiple event types

我要向用户发送 5 种不同类型的通知 A, B, C, D and E。 A、B、C、D、E之间没有关系

给你一个想法,A 可以是 facebook like,B 可以是 new friend request

我想知道是否可以为所有这些通知使用单个 SSE 连接,还是我应该为每种事件类型维护一个连接?

你能分享一些关于这方面的最佳做法吗?

使用单个 SSE 连接。

缩放的正常限制是 SSE 连接使用的套接字。所以最好只有一个连接。您不会在客户端出现更多的逻辑或复杂性:一个根据消息类型调用函数的消息处理程序 (A/B/C/D/E),而不是五个消息处理程序。

对于向同一个域打开大量 SSE 连接也有一些浏览器限制,因此单个连接可以避免命中任何一个。

如果使用 HTTP/2,您可能会争辩说多路复用意味着实际上只有一个套接字连接。但是在没有任何强有力的理由拥有多个套接字的情况下,我仍然会始终使用单个 SSE 连接,即使超过 HTTP/2.