本规范定义了一系列的开发websocket应用的JAVA API。这里假设读者已经熟悉WebSocket协议。WebSocket协议是HTML5规范的一部分,其有望带来易于开发和现代的、交互式的应用的网络效率一个新的层次。关于WebSocket协议的更多信息:
WebSocket协议规范
在JavaScript中使用WebSocket API
1.1 写作目的
本文档连同Java WebSocket API都是Java WebSocket API规范的组成部分,本规范定义了在声明时实现必须实现了Java WebSocket API。本规范是在Java社区产生的,与TCK一样,测试必须符合该规范,引用实现只有实现了该规范才能通过TCK,本规范定义了使用Java开发WebSocket应用。
尽管本文档对开发者使用Java WebSocket API有很大帮助,但本文的目的并不是开发指导。类似的,尽管本文档对开发者创建Java WebSocket API实现非常有用,但本文的目的并不是指导如何实现所需的功能。
1.2 规范的目标
本规范的目的是定义容器的需求:希望在Java开发平台上使用WebSocket API进行编程,尽管本文档对于开发者使用规范定义APIs非常有用,但本文档真的不是开发指导。
1.3 术语使用规范
端点(endpoint): websocket endpoint 是表示两个连接的服务从一端到另一端顺序进行交互的Java组件。
连接(connection):websocket连接是指两个websocket端点使用websocket协议进行交互的网络连接。
节点(peer):在websocket端点上下文中使用,websocket节点用来表述与端点进行交互的另一个websocket参与者。
会话(session):websocket session是指一个端点和一个节点之间的一系列websocket交互。
客户端端点和服务器端点(client endpoints and server endpoints):客户端端点是指初始化连接节点的端点。服务器端点是指接受来自节点的websocket连接,但并不初始化连接到节点。
1.4 规范约定
本文档中“MUST”,“MUST NOT”,“REQUIRED”,“SHALL”,“SHALL NOT”,“SHOULD”,“SHOULD NOT”,“RECOMMENDED”,“MAY”和“OPTIONAL”这样的关键字的解释都是在RFC2119[3]中定义。
此外,规范要求可以使用相符的测试套件进行测试,但测试套件必须以紧跟着一个用于标识要求的数字的数字WSC(WebSocket兼容性)标记,例如“WSC-12”。
Java代码和实例数据片段的格式如图1.1所示:
1
2
3
4
5
6
7
|
package
com.example.hello;
public
class
Hello {
public
static
void
main(String args[]) {
System.out.println(
"Hello World"
);
}
}
|
一般形式的URI “http://example.org/...”和“http://example.com/...”表示应用或上下文相关的URI。
此规范的所有部分是标准的、除了示例、注释和明确标记为“非标准”的部分。非标准的注释格式如下所示。
Note: This is a note. 注释:这是一个注释。 |
1.5 专家组成员
本规范是Java社区进程开发的作为JSR 356[链接]。它是JSR 356专家组成员协同工作的结果。完整的公共邮件归档可以在这里找到[链接] 。以下是专家组成员:
Jean-Francois Arcand (Individual Member)
Greg Wilkins (Intalio)
Scott Ferguson (Caucho Technology, Inc)
Joe Walnes (DRW Holdings, LLC)
Minehiko IIDA (Fujitsu Limited)
Wenbo Zhu (Google Inc.)
Bill Wigger (IBM)
Justin Lee (Individual Member)
Danny Coward (Oracle)
Rmy Maucherat (RedHat)
Moon Namkoong (TmaxSoft, Inc.)
Mark Thomas (VMware)
Wei Chen (Voxeo Corporation)
Rossen Stoyanchev (VMware)
1.6 致谢
在开发本规范期间,我们收到了许多审查评论,反馈和建议,尤其要感谢:Jitendra Kotamraju, Martin Matula, Stˇ epˇ an Kop′ ˇriva, Pavel Bucek, Dhiru Panday, Jondean Healey, Joakim Erdfelt, Dianne Jiao, Michal Conos, Jan Supol.