Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6895160
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: HTML5

2014-03-03 11:54:34

原文地址:Tomcat 7的WebSocket实现(下) 作者:jieforest

Tomcat 7的WebSocket实现(下)
下面来看一下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()方法。

点击(此处)折叠或打开

  1. @Override
  2. protected void onOpen(WsOutbound outbound);
  3. @Override
  4. protected void onClose(int status);

把数据写到客户端
必须有StreamInbound实现类,它会引用发送器组件WsOutbound,可以简单地通过调用来取到它:

点击(此处)折叠或打开

  1. myStreamInbound.getWsOutbound()
还可以发送二进制数据

点击(此处)折叠或打开

  1. public void writeBinaryData(int b);
  2. public void writeBinaryMessage(ByteBuffer msgBb);
或者发送文本数据到客户端

点击(此处)折叠或打开

  1. public void writeTextData(char c);
  2. public void writeTextMessage(CharBuffer msgBb);

阅读(707) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~