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

相关推荐
2501_921649492 小时前
如何获取美股实时行情:Python 量化交易指南
开发语言·后端·python·websocket·金融
老蒋新思维3 小时前
创客匠人视角:智能体重构创始人 IP,知识变现从 “内容售卖” 到 “能力复制” 的革命
大数据·网络·人工智能·tcp/ip·创始人ip·创客匠人·知识变现
老蒋新思维5 小时前
创客匠人:认知即资产 ——AI 时代创始人 IP 知识变现的底层逻辑
网络·人工智能·网络协议·tcp/ip·重构·创始人ip·创客匠人
白驹过隙^^6 小时前
OB-USP-AGENT安装使用方法
数据库·经验分享·网络协议·tcp/ip·github·ssl
白帽子黑客罗哥7 小时前
渗透测试技术:从入门到实战的完整指南
网络·安全·web安全·渗透测试·漏洞挖掘·网络安全培训
北邮刘老师7 小时前
【智能体互联协议解析】ACPs/AIP为什么还在用“落后”的“中心化”架构?
网络·人工智能·架构·大模型·智能体·智能体互联网
winfield8217 小时前
MCP 协议详解
开发语言·网络·qt
sdszoe49227 小时前
IP地址规划与VLSM技术
网络·网络协议·tcp/ip·vlsm·ip地址规划
m0_569531017 小时前
《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》
网络·容器·kubernetes
广东大榕树信息科技有限公司7 小时前
当运维管理面临挑战时,如何借助动环监控系统提升响应能力?
运维·网络·物联网·国产动环监控系统·动环监控系统