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

相关推荐
从int开始1 小时前
WebApplicationType.REACTIVE 的webSocket 多实例问题处理
websocket
创小匠3 小时前
创客匠人:创始人 IP 变现,从 “单点尝试” 到 “生态赋能” 的跨越
网络·网络协议·tcp/ip
Fireworkitte5 小时前
gRPC和http长轮询
网络·网络协议·http
LuLaLuLaLeLLLLLL6 小时前
RPC 框架学习笔记
网络·网络协议·rpc
冰橙子id6 小时前
linux-远程访问管理(sshd,scp,sftp)
linux·网络·ssh
橘子在努力9 小时前
【橘子分布式】Thrift RPC(理论篇)
分布式·网络协议·rpc
liulilittle11 小时前
.NET ExpandoObject 技术原理解析
开发语言·网络·windows·c#·.net·net·动态编程
委婉待续11 小时前
计算机网络通信的相关知识总结
开发语言·网络
不超限11 小时前
IIS错误:Service Unavailable HTTP Error 503. The service is unavailable.
网络·网络协议·http
.YYY13 小时前
网络--静态路由综合实验
网络·计算机网络