WebSocket实战之五JSR356

这篇具有很好参考价值的文章主要介绍了WebSocket实战之五JSR356。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

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

二、JSR356

WebSocket实战之五JSR356,通讯协议,websocket,网络协议,网络

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依赖。

WebSocket实战之五JSR356,通讯协议,websocket,网络协议,网络

3、Tomcat启动类

4、WebSocketServer类

WebSocket实战之五JSR356,通讯协议,websocket,网络协议,网络

4、客户端代码

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

四、SpringBoot整合WebSocket例子

使用SpringBoot整合WebSocket也很简单,因为Springboot内置了Tomcat。文章来源地址https://www.toymoban.com/news/detail-744354.html

1、pom.xml

WebSocket实战之五JSR356,通讯协议,websocket,网络协议,网络

2、WebSocket配置

WebSocket实战之五JSR356,通讯协议,websocket,网络协议,网络

3、WebSocketServer

WebSocket实战之五JSR356,通讯协议,websocket,网络协议,网络

到了这里,关于WebSocket实战之五JSR356的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WebSocket | 基于TCP的全双工通信网络协议

    ​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发和前端开发。 🦅主页:@逐梦苍穹 📕所属专栏:Java EE ✈ 您的一键三连,是我创作的最大动力🌹 WebSocket 是基于 TCP 的一

    2024年02月19日
    浏览(77)
  • 全网最详细,Jmeter性能测试-性能进阶, 多协议实战Websocket/Dubbo(七)

    Jmeter是目前主流的性能测试工具,原因除了他是开源的、免费的之外,还有它的拓展性非常强。Jmeter默认使用的协议是Http/HTTPS协议,但这并不是唯一的协议,通过加载插件,可以让Jmeter支持更多协议的脚本开发。 webservice(soap)协议 webservice是一个web的应用程序,使用xml想外

    2023年04月20日
    浏览(54)
  • 持久双向通信网络协议-WebSocket-入门案例实现demo

    1 介绍 WebSocket 是基于 TCP 的一种新的 网络协议 。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建 持久性 的连接, 并进行 双向 数据传输。 HTTP协议和WebSocket协议对比: HTTP是 短连接 (一次响应完即消除) WebSocket是 长连接

    2024年01月16日
    浏览(47)
  • 网络通信协议-HTTP、WebSocket、MQTT的比较与应用

    在今天的数字化世界中,各种通信协议起着关键的作用,以确保信息的传递和交换。HTTP、WebSocket 和 MQTT 是三种常用的网络通信协议,它们各自适用于不同的应用场景。本文将比较这三种协议,并探讨它们的主要应用领域。 HTTP (超文本传输协议) HTTP  是最常见的协议之一

    2024年02月05日
    浏览(61)
  • flutter开发实战-长链接WebSocket使用stomp协议stomp_dart_client

    flutter开发实战-长链接WebSocket使用stomp协议stomp_dart_client 在app中经常会使用长连接进行消息通信,这里记录一下基于websocket使用stomp协议的使用。 1.1 stomp介绍 stomp,Streaming Text Orientated Message Protocol,是流文本定向消息协议,是一种为MOM(Message Oriented Middleware,面向消息的中间件

    2024年02月13日
    浏览(48)
  • 前端面试:【网络协议与性能优化】HTTP/HTTPS、TCP/IP和WebSocket

    嗨,亲爱的Web开发者!在构建现代Web应用时,了解网络协议是优化性能和确保安全性的关键。本文将深入探讨HTTP/HTTPS、TCP/IP和WebSocket这三个网络协议,帮助你理解它们的作用以及如何优化Web应用的性能。 1. HTTP/HTTPS协议: HTTP(超文本传输协议): HTTP是用于在Web上传输数据的

    2024年02月11日
    浏览(51)
  • 【websocket】Node+Vue2+WebSocket实现前后端通讯

    WebSocket是一个长连接,客户端可以给服务端发送消息,服务端也可以给客户端发送消息,是 全双工通信。 平时的前后端分离项目,是前端请求结果获取后端服务器数据,从而渲染到页面,服务端无法主动向客户端发起消息,某些需求场景下,一旦客户端 需要知道服务端的频

    2024年02月02日
    浏览(48)
  • SignalR WebSocket通讯机制

    1、什么是SignalR ASP.NET SignalR 是一个面向 ASP.NET 开发人员的库,可简化向应用程序添加实时 Web 功能的过程。 实时 Web 功能是让服务器代码在可用时立即将内容推送到连接的客户端,而不是让服务器等待客户端请求新数据。 SignalR使用的三种底层传输技术分别是Web Socket, Server

    2024年02月06日
    浏览(47)
  • WebSocket和Html通讯

    参考 opencv-websocket: 基于opencv-web的实现 https://github.com/zaphoyd/websocketpp 安装教程 Websocket++安装使用 - 知乎 (zhihu.com) 遇到相关问题可以参考:Websocket++安装使用 - 知乎 (zhihu.com) 安装boost 安装WebSocket++ 想要修改相关的服务端端口和播放视频,可以 vim Websocket/src/main.cpp

    2024年02月09日
    浏览(40)
  • websocket实现通讯——Java

    参考博客0 1)通知功能: 2)数据收集: 3)加密 认证: 4)反向控制钩子: 1、websocket则允许我们在一条ws连接上同时并发多个请求,即在A请求发出后A响应还未到达,就可以继续发出B请求。由于TCP的慢启动特性(新连接速度上来是需要时间的),以及连接本身的握手损耗,

    2024年02月15日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包