WebSocket入门

WebSocket

客户端【浏览器】API

websocket 对象创建:

let ws = new WebSocket(URL)
// URL格式(协议为ws)
//    协议://ip地址/访问路径

websocket对象相关事件:

Open事件:
事件处理程序 ws.onopen
描述:在建立连接时触发

Message事件:
ws.onmessage
在客户端接收到服务器发送的数据时触发

Close事件:
ws.onclose
连接关闭时触发

websocket对象提供的方法:

send()
通过websocket对象调用该方法发送数据给服务器

服务端 【Tomcat】 API

简介:

Tomcat 7.0.5 开始支持WebSocket,实现JW(java websocket)规

Endpoing 对象:

Endpoint 是一个java对象,代表WebSocket连接的一端。 在服务端可以看成 处理具体WebSocket 消息的接口

服务器端点[Endpoint] 定义:

编程式:

​ 继承 javax.websocket.Endpoint 并自行实现其方法

注解式:

​ 在类定义前添加@ServerEndpoint 注解,类会被自动识别为Endpoint类加载到服务当中

生命周期方法:

​ Endpoint实例,在WebSocket握手时创造,在连接过程中持续有效,在连接关闭时结束。

// 编程式
onOpen()
 开启新会话时调用,在客户端与服务端握手成功后调用
onClose()
 会话关闭时调用
onError()
 连接过程异常时调用
// 注解式
@OnOpen
@OnClose
@OnError

接受客户端数据:

编程式:

​ 添加 MessageHandler 消息处理器来接受消息

注解式:

​ 在定义Endpoint时,通过@OnMessage 注解指定接受消息的方法

发送客户端数据:

​ 发送消息由 RemoteEndpoint 完成,实例由 Session 维护

// 发送方式
session.getBasicRemote() //获取同步消息发送类
session.getAsyncRemote() //获取异步消息发送类
// 然后调用sendXxx()方法发送消息
sessin.getBasicRemote().sendText(msg);

​ 消息发送后,客户端收到对应的消息并进行处理。

上一篇
下一篇