EventSource

1 位贡献者:

EventSource接口用来管理服务器发送事件.你可以通过将EventSource对象的onmessage属性指向一个自定义方法来处理那些从服务器接受到的无类型的消息(也就是,没有event字段的消息).你还可以使用addEventListener()方法来监听其他指定了事件类型的消息.

查看使用服务器发送事件一文了解详情.

方法概述

void close();
void init(in nsIPrincipal principal, in nsIScriptContext scriptContext, in nsPIDOMWindow ownerWindow, in DOMString url); Native code only!

属性

属性名 类型 描述
onerror nsIDOMEventListener 初始值为null,需要指向一个自定义函数,在连接发生错误的时候会自动调用那个自定义函数.
onmessage nsIDOMEventListener 初始值为null,需要指向一个自定义函数,在接受到一个没有event字段的消息时会自动调用那个自定义函数.
onopen nsIDOMEventListener 初始值为null,需要指向一个自定义函数,在成功建立连接后调用.
readyState long 连接的当前状态,必须为CONNECTING,OPEN,或者CLOSED中的一种. 只读.
url DOMString 只读.

除了这些普通属性,下面还有两个无法通过JavaScript代码直接访问的内部属性(当然,没有常规的属性名):

重新连接时间
一个时间值,单位为毫秒,用来决定在连接失败后需要等待多久再次尝试连接.
最后一次的事件ID字符串
初始值为空字符串,如果服务器发送的消息中包含有id字段,则对应的字段值会赋值给该属性.如果该属性已经有值,则会覆盖旧的那个值.

常量

常量名 描述
CONNECTING 0 正在建立连接.
OPEN 1 连接处于打开状态,正在调度事件.
CLOSED 2 连接没有被建立,或者已经关闭,或者发生了某个致命错误.

方法

close()

如果连接处于打开状态,则关闭连接,并把readyState属性的值设置为CLOSED.如果连接已经关闭,则该方法不会做任何事情.

void close();
参数

无.

Native code only!

init

在C++代码中新建一个EventSource对象.

void init(
  in nsIPrincipal principal,
  in nsIScriptContext scriptContext,
  in nsPIDOMWindow ownerWindow,
  in DOMString url
);
参数
principal
用来进行该请求的principal,不能为null.
scriptContext
进行该请求的脚本上下文,可以为null.
ownerWindow
与该请求关联的window对象,可以为null.
url
EventSource对象的目标URL,不能为空.

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
EventSource support 9 6.0 (6.0) ? 11 5
Cross-Origin Resource Sharing
support
26 11.0 (11.0) ? 12 ?
Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
EventSource support ? ? ? ? ?

相关链接

文档标签和贡献者

向此页面作出贡献: ziyunfei
最后编辑者: ziyunfei,