HTML5 WebSocket and Web Messages Pushlet
jsr-356
Programming Model
In general, two different programming models are supported:
- Annotation-driven. Using annotated POJOs, developers can interact with the WebSocket lifecycle events.
- Interface-driven. Developers can implement the
Endpoint
interface and the methods that interact with the lifecycle events.
ServerApplicationConfig supports for annotated Endpoints.
http://www.oracle.com/technetwork/articles/java/jsr356-1937161.html
websocket api:
https://msdn.microsoft.com/zh-cn/library/Hh673567(v=VS.85).aspx IE10+
https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket
方法概述
void close(in optional unsigned long code, in optional DOMString reason); |
void send(in DOMString data); |
属性
属性名 | 类型 | 描述 |
binaryType | 一个字符串表示被传输二进制的内容的类型。取值应当是"blog"或者"arraybuffer"。 "blob"表示使用DOMBlob 对象,而"arraybuffer"表示使用ArrayBuffer。 | |
bufferedAmount | unsigned long | 已被send()放入正在队列中等待传输,但是还没有发出的字节数。这个值在连接关闭前不会设为0。如果持续调用send(),这个值会持续增长。只读。 |
extensions | DOMString | 服务器选定的扩展。目前这个属性只是一个空字符串,或者是一个包含所有扩展的列表。 |
onclose | 用于监听连接关闭事件监听器。当WebSocket对象的readyState状态变为CLOSED时会出发该事件。这个监听器会接收一个叫close的CloseEvent对象。 | |
onerror | 当错误发生时用于监听error事件的事件监听器。会接受一个名为error的event对象。 | |
onmessage | 一个用于消息事件的事件监听器,这一事件当有消息到达的时候该事件会触发。这个Listener会被传入一个名为"message"的MessageEvent对象。 | |
onopen | 一个用于连接打开事件的事件监听器。当readyState的值变为OPEN的时候会触发该事件。该事件表明这个连接已经准备好接受和发送数据。这个监听器会接受一个名为"open"的事件对象。 | |
protocol | 一个表明服务器选定的子协议名字的字符串。这个属性的取值会被取值为构造器传入的protocols参数。 | |
readyState | 连接的当前状态。取值是 Ready state constants之一。只读。 | |
url | 传入构造器的URL。它必须是一个绝对地址的URL。只读。 |
常量
Ready state constants
这些常量是readyState属性的取值,可以用来描述WebSocket连接的状态。
Constant | Value | Description |
CONNECTING | 连接还没开启。 | |
OPEN | 1 | 连接已开启并准备好进行通信。 |
CLOSING | 2 | 连接正在关闭的过程中。 |
CLOSED | 3 | 连接已经关闭,或者连接无法建立。 |
Apache2.4 websocket
Apache Module mod_proxy_wstunnel