最近我发现Server-Sent事件是从服务器进行推送的更简单的WebSockets替代方法。大多数比较它们的地方(如here,here和here)都表示,如果你不需要客户端和服务器之间的全双工通信,那么WebSocket就是过度杀毒,SSE就足够好了。使用Server-Sent事件进行双向客户端 - 服务器通信(而不是WebSockets)
我的问题是,如果您确实需要双向通信(例如聊天),使用常规Ajax请求从客户端发送消息以及使用服务器流接收它们,那么使用SSE会有什么不利影响?考虑到我不得不在服务器端使用SSE做很少的配置,它似乎是一个更吸引人的选择。
好点,但我不太同意独立服务器的复杂性。 SSE协议非常简单 - 比WebSockets更简单(无握手,成帧,屏蔽,二进制)。在这两种情况下,您都需要解析HTTP(类似)标头。你可以在bash脚本中实现SSE服务器:) – Kornel
@porneL,你是对的,一个基本的SSE服务器可以相当简单的实现(尽管我想看看你的bash版本),但基本的WebSocket服务器也是如此。但无论如何,我的观点并不是WebSocket服务器更简单,但SSE通常采用Web服务器,而WebSocket则不采用这种服务器(尽管它的设计目的是与现有Web基础架构轻松集成)。 – kanaka