我正在尝试进入网络推送技术,所以我开始环顾四周。我基本上找到了 2 种技术,即 Websockets 和 SSE。由于缺乏 perl 支持而排除了 Websockets 后,我想尝试更原生的 SSE 方法。
现在,试图让 SSE 发挥作用是一件非常痛苦的事情。每个文档都有相互矛盾的信息,而且似乎没有就 SSE 的工作方式达成普遍共识。有人说你需要一个<event-listen src="events.pm">
标签,其他人说你只需要一个EventSource
JS 对象。即使使用 EventSource 对象,我也发现了大约 4 种可能的实现,但它们似乎都不起作用。
这就是我所拥有的。我有一个events.pm
,它使用 mod-perl。如果您调用该文件,它会返回data: I haz a websocket
. 这是与 content-type 一起发送的application/x-dom-event-stream
。
HTML 和 JS 文件经常被不同的实现重写,我已经放弃了它们。你们能给我一个工作的例子吗?
另外:我不明白您如何向客户端发送特定消息。发送预定义的消息似乎很好。但是,如果我想象有人向我发送消息的情况,我不明白该信息(“有一条新消息给您”)是如何准确地传输到需要该信息的那个浏览器的。我在这方面找到的每一篇文章充其量都是模糊的。
编辑
基本上,我需要的是一种说‘嘿,你可以收到这个通知吗?先给我看看你的 id/session/token!基于每个连接的客户端。我想知道 SSE 是否有可能。