Tomcat 7的WebSocket实现(下)
2014-02-28 19:40
302 查看
Tomcat 7的WebSocket实现(下)
作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs下面来看一下WebSocket的交互情况:1)头部“Connection:upgrade”
2)响应包含关键状态码101
3)表明协议交换已经证明
在客户端和服务器之间的握手协议完成后,抛弃请求/响应通信,彼此开始独立的互发消息。下面是我的帧:
Tomcat是怎样实现WebSocket的
1)要开始使用WebSocket,你必须继承Tomcat的WebSocket类
2)编写自己的类,它继承WebSocketServlet类(由于这是一个Servlet,因此必须把它映射到URL)
3)实现一个消息监听器类,由于它继承自WebSocketServlet类,因此需要自己实现createWebSocketInbound()方法
此方法能够用于监听事件。有两个必须有的方法:
一是 protected void onBinaryData(InputStream inStream);
二是protected void onTextData(Reader reader);
当WebSocket打开或关闭时,如果你希望收到通知,只需简单地重写onOpen()方法和onClose()方法。
@Override protected void onOpen(WsOutbound outbound); @Override protected void onClose(int status);把数据写到客户端
必须有StreamInbound实现类,它会引用发送器组件WsOutbound,可以简单地通过调用来取到它:
myStreamInbound.getWsOutbound()还可以发送二进制数据
public void writeBinaryData(int b); public void writeBinaryMessage(ByteBuffer msgBb);或者发送文本数据到客户端
public void writeTextData(char c); public void writeTextMessage(CharBuffer msgBb);注意:这些方法是互斥的。不要同时调用两种方法,以期待既发送二进制数据,又发送文本数据。
关闭客户端连接
关闭通道有两种方式,分为clean方式和not clean方式。clean方式意味着已经通过TCP完成了握手协议。not clean方式意味着TCP连接被断开,先于握手的关闭。
Jaggery WebSocket实现
下面是Jaggery WebSocket实现的序列图:
相关文章推荐
- Tomcat 实现WebSocket详细介绍
- Java后端WebSocket的Tomcat实现
- 在Java7与Tomcat8环境下使用WebSocket实现聊天的示例
- WebSocket在java Tomcat中实现
- springboot整合tomcat自带的websocket实现在线聊天及象棋网页对战功能
- Java用webSocket实现tomcat的日志实时输出到web页面
- 基于tomcat 7.0.68 的websocket 实现,及通过 HttpSessionId 实现websocket session 共享
- Java后端WebSocket的Tomcat实现
- Java后端WebSocket的Tomcat实现
- WebSocket简单介绍 Java后端WebSocket的Tomcat实现
- Java用webSocket实现tomcat的日志实时输出到web页面
- Java WEb后端WebSocket的Tomcat实现
- Java后端WebSocket的Tomcat实现
- 基于HTML5和Tomcat WebSocketServlet的聊天室简单实现
- 基于HTML5和Tomcat WebSocketServlet的聊天室简单实现
- Java后端WebSocket的Tomcat实现
- Java后端WebSocket的Tomcat实现
- WebSocket学习总结(1)——Java后端WebSocket的Tomcat实现