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);
消息发送后,客户端收到对应的消息并进行处理。