WebSocket实战之五JSR356

一、前言

前几篇WebSocket例子服务端我是用NodeJS实现,这一篇我们用Java来搭建一个WebSocket服务端,从2011年WebSocket协议RFC6455发布后,大多数浏览器都实现了WebSocket协议客户端的API,而对于服务端Java也定义了一个规范JSR356,即Java API for WebSocket规范,很多Web容器如Tomcat、Jetty等新版本都支持该规范。

二、JS R356

JSR356是JavaEE7标准的一部分,所有支持JavaEE7标准的应用服务器都有JSR356的WebSocket实现。

注:上面JSR356图上写成JSR365了,懒得改图了。

JSR36可以采用注解或接口来实现WebSocket生命周期方法的实现。

1、注解方式

  • @ServerEndpoint("/websockets")

告诉容器此类是WebSocket服务端端点,

使用路径/websockets连接。

  • @ClientEndpoint

告诉容器此类是WebSocket客户端端点。

  • @OnOpen

一旦建立了WebSocket连接就会创建Session,

并调用该注解的方法

  • @OnMessage

对方端点发送消息过来,调用该注解的方法。

  • @OnClose

对方端点关闭连接时会调用该注解的方法。

  • @OnError

如果异常错误就会调用该注解的方法。

2、实现接口方式

继承javax.websocket.Endpoint实现命令周期各个方法。

WebSocket JavaAPI支持消息类型

  • 文本消息

  • 二进制消息

  • pingpong消息

三、一个简单例子

使用内嵌Tomcat来运行WebSocket服务,webSocket依赖于容器的实现。

1、创建项目

使用IDEA创建 webapp maven工程。

2、pom.xml

添加Websocket以及内嵌Tomcat依赖。

3、Tomcat启动类

4、WebSocketServer类

4、客户端代码

使用 WebSocket实战之一 代码 ,然后就可以向相互发送消息了。

四、SpringB oot整合WebSocket例子

使用SpringBoot整合WebSocket也很简单,因为Springboot内置了Tomcat。

1、pom.xml

2、WebSocket配置

3、WebSocketServer

相关推荐
小马爱打代码2 小时前
TCP 详解
网络·网络协议·tcp/ip
聿琴惜荭顏丶3 小时前
.NET MAUI进行UDP通信(二)
网络协议·udp·.net
努力的小T3 小时前
基于 Bash 脚本的系统信息定时收集方案
linux·运维·服务器·网络·云计算·bash
TS_forever0073 小时前
【华为路由的arp配置】
网络·华为
hkNaruto3 小时前
【P2P】基于 Nebula 的 P2P 通信技术的虚拟局域网游戏设计方案
网络协议·游戏·p2p
Andya_net4 小时前
网络安全 | 0day漏洞介绍
网络·安全·web安全
某风吾起4 小时前
linux系统中的 scp的使用方法
linux·服务器·网络
NoneCoder4 小时前
JavaScript系列(42)--路由系统实现详解
开发语言·javascript·网络
阿猿收手吧!4 小时前
【Linux网络总结】字节序转换 收发信息 TCP握手挥手 多路转接
linux·服务器·网络·c++·tcp/ip
小何只露尖尖角4 小时前
网络层-IP协议
网络