Tomcat 7的WebSocket实现(下)

简介: Tomcat 7的WebSocket实现(下) 下面来看一下WebSocket的交互情况: 1)头部“Connection:upgrade” 2)响应包含关键状态码101 3)表明协议交换已经证明 在客户端和服务器之间的握手协议完成后,抛弃请求/响应通信,彼此开始独立的互发消息。
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);

目录
相关文章
|
2月前
|
网络协议 Java 应用服务中间件
Tomcat中的WebSocket是如何实现的?
【10月更文挑战第7天】本文介绍了WebSocket在Tomcat中的实现,包括其全双工通信、单个TCP连接、协议升级和事件驱动的特点。通过Spring Boot项目整合WebSocket,展示了如何配置依赖、创建WebSocket处理类和配置类。详细解析了WebSocket的原理,包括ServerEndpointExporter的注册过程和请求处理流程。总结了WebSocket与HTTP请求处理的区别,并提供了进一步学习的资源。
Tomcat中的WebSocket是如何实现的?
|
6月前
|
Web App开发 移动开发 Java
基于tomcat运行HTML5 WebSocket echo例子
基于tomcat运行HTML5 WebSocket echo例子
55 2
|
消息中间件 网络协议 前端开发
SpringBoot轻松整合WebSocket,实现Web在线聊天室
前面为大家讲述了 Spring Boot的整合Redis、RabbitMQ、Elasticsearch等各种框架组件;随着移动互联网的发展,服务端消息数据推送已经是一个非常重要、非常普遍的基础功能。今天就和大家聊聊在SpringBoot轻松整合WebSocket,实现Web在线聊天室,希望能对大家有所帮助。
SpringBoot轻松整合WebSocket,实现Web在线聊天室
|
存储 JavaScript 开发者
Vue合理配置WebSocket并实现群聊
Vue合理配置WebSocket并实现群聊
Vue合理配置WebSocket并实现群聊
|
网络协议 前端开发 安全
websocket和http的瓜葛以及websocket协议实现
websocket和http的瓜葛以及websocket协议实现
websocket和http的瓜葛以及websocket协议实现
|
Ubuntu 关系型数据库 MySQL
Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
321 0
Linux:Ubuntu安装jdk、tomcat、mysql,以及实现Tomcat开机自启动
|
网络协议 Linux 网络安全
php实现websocket实时消息推送
php实现websocket实时消息推送
539 0
php实现websocket实时消息推送
|
JavaScript 前端开发 Python
Python编程:tornado实现WebSocket通讯
以下实例有点像广播通讯,支持多个客户端连接 代码参考别人的,稍微做了一点点修改 服务器端 websocket_demo.py
125 0
Python编程:tornado实现WebSocket通讯
|
消息中间件 NoSQL 前端开发
通过WebSocket实现日志打印功能
通过WebSocket实现日志打印功能
894 0
通过WebSocket实现日志打印功能
|
网络协议 安全 Java
用Netty实现WebSocket网络聊天室
用Netty实现WebSocket网络聊天室
207 0
用Netty实现WebSocket网络聊天室