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

相关推荐
z人间防沉迷k3 分钟前
互联网协议的多路复用、Linux系统的I/O模式
linux·网络·http
c语言中的小小白7 分钟前
【Linux网络】————详解TCP三次握手四次挥手
网络·网络协议·tcp/ip
9527华安18 分钟前
紫光同创FPGA实现AD9280数据采集转UDP网络传输,分享PDS工程源码和技术支持和QT上位机
网络·fpga开发·udp·紫光同创·qt上位机·ad9280
----云烟----1 小时前
使用libUSB-win32的简单读写例程参考
网络
z人间防沉迷k1 小时前
UDP和TCP协议
网络协议·tcp/ip·http·udp
weixin_473894771 小时前
前端服务器部署分类总结
前端·网络·性能优化
roman_日积跬步-终至千里2 小时前
【starrocks】StarRocks 常见 HTTP 操作与导入错误排查指南
starrocks·网络协议·http
上海云盾-高防顾问2 小时前
SCDN如何有效防护网站免受CC攻击?——安全加速网络的实战解析
网络·安全
alden_ygq2 小时前
nginx 出现大量connect reset by peer
服务器·网络·nginx
xiao--xin3 小时前
计算机网络笔记(二十三)——4.5IPv6
网络·笔记·计算机网络·ipv6