Mik*_*ike 13 javascript perl server-sent-events
我正试图进入网络推送技术,所以我开始环顾四周.我基本上找到了2种技术,即Websockets和SSE.由于缺乏perl支持而排除Websockets后,我想尝试更原生的SSE方法.
现在,试图让SSE工作是一个真正的痛苦.每个文档都有相互矛盾的信息,似乎没有就SSE如何工作达成一致意见.有人说你需要一个<event-listen src="events.pm">标签,其他人说你只需要一个EventSourceJS对象.即使使用EventSource对象,我发现了大约4种可能的实现,但它们似乎都不起作用.
这就是我所拥有的.我有一个events.pm,使用mod-perl.如果您调用该文件,则返回data: I haz a websocket.这是与内容类型一起发送的application/x-dom-event-stream.
HTML和JS文件经常被重写,我已经放弃了不同的实现.你们能告诉我一个有效的例子吗?
另外:我不明白你如何向客户发送特定的消息.发送预定义的消息似乎没问题.但是,如果我想象某人向我发送消息的情况,我不明白这些信息("有一条新消息给你")是如何传输到需要该信息的确切浏览器的.我发现的每篇文章都充其量是模糊的.
基本上,我需要的是一种方式来说'嘿,你被允许得到这个通知吗?首先告诉我你的身份/会话/令牌!' 在每个连接的客户端.我想知道SSE是否可能.
我想说服务器发送的事件在使用服务器发送事件的流更新文章中描述得非常好,即事件流格式.随着Firefox 6 SSE现在支持大多数现代浏览器(不幸的是除了IE).
我不明白你如何向客户发送特定的消息.发送预定义的消息似乎没问题.但是,如果我想象某人向我发送消息的情况,我不明白这些信息("有一条新消息给你")是如何传输到需要该信息的确切浏览器的.
客户端通过keep-alive事件流与单向连接与SSE服务器连接,单向连接在浏览器/选项卡关闭之前不会关闭,用户调用close方法或网络连接丢失.
基本上,我需要的是一种方式来说'嘿,你被允许得到这个通知吗?首先告诉我你的身份/会话/令牌!' 在每个连接的客户端.我想知道SSE是否可能.
这种身份验证逻辑需要在服务器端执行,因此它取决于您使用的语言或平台.除非在您的环境中有可用的库,否则您可能需要编写它.
规范已经改变/发展.当前版本使用EventSource对象.HTML元素消失了.
当前的MIME类型是text/event-stream.它x-dom-event-stream仅用于早期实现(2006年的Opera).
要识别/验证客户端,您可以使用cookie或连接到包含某种身份验证令牌(会话ID)的事件流URL,然后您就会知道特定的TCP/IP连接与该用户相关联.
http://html5doctor.com/server-sent-events/
| 归档时间: |
|
| 查看次数: |
9912 次 |
| 最近记录: |