• WebSocket实战之五JSR356


    一、前言

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

    二、JSR356

    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实战之一 代码  ,然后就可以向相互发送消息了。

    四、SpringBoot整合WebSocket例子

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

    1、pom.xml

    2、WebSocket配置

    3、WebSocketServer

  • 相关阅读:
    C/C++停车场模拟(栈和队列)
    面向对象和原型/原型链学习
    uniapp项目+SSM实现的安卓的掌上校园系统
    LeetCode 2333. 最小差值平方和(贪心)
    Open3D 可视化(1)——简单可视化
    haproxy+keepalived实战
    力扣:随即指针138. 复制带随机指针的链表
    解决uniapp打包过大问题的实用方法
    业务定制型异地多活架构设计
    pthread_key_t和pthread_key_create()详解
  • 原文地址:https://blog.csdn.net/2301_76787421/article/details/133531151