基于 tomcat 的 WebSocket 实现

这种方式需要 tomcat 7.x,JEE7 的支持。

首先创建一个 springboot 项目,在 pom.xml 中导入 websocket 所需要的依赖

然后开启 WebSocket 的自动注册(如果使用的是独立的 servlet 容器,而不是 spring boot 的内置容器,就不需要注入这个,它将由容器自己提供和管理)

然后就可以创建 WebSocket 服务端啦!主要在于两个部分 :

通过注解 @ServerEndpoint 来声明实例化 WebSocket 服务端

通过注解 @OnOpen、@OnMessage、@OnClose、@OnError 来声明回调函数

最后让我们来检验一下成果!首先用在线 WebSocket 测试开三个用户,然后让用户 2 发一条消息

可以看到在用户 2 的消息发送后,每个在线用户都能够收到来自服务器的主动推送 业务完美qwq

基于 Spring 的 WebSocket 实现

这种方式需要 spring4.x 的支持。由于使用了 socketjs,对于不支持 WebSocket 的浏览器可以模拟 WebSocket 的使用。

首先还是创建一个 spring boot 项目,导入依赖

然后新建一个配置类,用于添加服务端点,以接收客户端的连接

最后构建服务端,具体的方法基本与上面对应,数据通过 session 进行传输

最后检查一下消息发送情况(这里测试的时候是把代码中从session获取userId改成了直接令 userId = 1L)

完成!(。・`ω´・)

java websocket 库_Java 项目中的 WebSocket 实现相关推荐

  1. java jndi使用_Java项目中使用JNDI连接数据库

    因为写的大作业经常用到数据库连接 所以自己写了个数据库连接的类 package DB_Link_info;/* * 数据库链接信息 */public class DB_link_Info {publi ...

  2. java h2数据库_JAVA 项目中使用 H2 数据库

    JAVA 项目中使用 H2 数据库 发布时间:2018-06-08 15:43, 浏览次数:823 , 标签: JAVA 为什么要使用H2数据库 H2数据库是可以嵌入到JAVA项目中的,因为只需要导入 ...

  3. java byte 拓展_Java项目中如何扩展第三方jar包中的类?

    有些时候你对第三方得到jar包中的类并不是很满意,想根据实际情况做一些扩展.如果说第三方的jar包已经提供了一些可扩展的类,比如提供了Interceptor,Filter或者其他的类,那么使用原生的比 ...

  4. java 多线程池_Java项目中,线程池中线程数量太大会有什么影响?

    简单说一下吧!拿我们生活中非常常见的一例子来说:并不是人多就能把事情做好,增加了沟通交流成本.你本来一件事情只需要3个人做,你硬是拉来了6个人,会提升做事效率嘛?我想并不会. 线程数量过多的影响也是和 ...

  5. java 不同包_Java项目中不同包的命名及作用

    ①在vo或者domain包中定义bean类,主要是类的属性,这个类跟数据库中的某个表的字段一致. ②dao包中主要是存放用于操作数据库完成业务逻辑方法的接口. ③dao.impl这个包存放着这样的一个 ...

  6. vue项目中通过WebSocket实现实时消息提示及遇到的问题

    vue项目中通过WebSocket实现实时消息提示(前端代码) 需求说明 后台有新增消息通知,并实时推送给用户端,用websocket可以很方便的解决这个问题,但是websocket有个弊端不兼容IE ...

  7. junit5_在Java 8之前的项目中使用JUnit 5

    junit5 这篇文章演示了如何在Java 8之前的项目中使用JUnit 5,并解释了为什么它是一个好主意. JUnit 5至少需要Java 8作为运行时环境,因此您想将整个项目更新为Java8.但是 ...

  8. java 获取sqlsession_获取Java的MyBatis框架项目中的SqlSession的方法

    从XML中构建SqlSessionFactory从XML文件中构建SqlSessionFactory的实例非常简单.这里建议你使用类路径下的资源文件来配置. String resource = &qu ...

  9. java项目使用junit_在Java 8之前的项目中使用JUnit 5

    java项目使用junit 这篇文章演示了如何在Java 8之前的项目中使用JUnit 5,并解释了为什么它是一个好主意. JUnit 5至少需要Java 8作为运行时环境,因此您想将整个项目更新为J ...

最新文章

  1. transport request 实现原理
  2. object overview page打开后白屏问题分析
  3. python接口自动化2-发送post请求
  4. 成立一周?谷歌人工智能道德委员会解散了?近日,金山云和小米刚签订了不超过9000万的硬件产品供应协议,闹哪样? | 极客头条...
  5. 抽象方法,抽象类,接口
  6. 成为中国最好的Magento开发公司
  7. Java并发编程(04):线程间通信,等待/通知机制
  8. 信息学奥赛一本通(1010:计算分数的浮点数值)
  9. PHP的学习--可变函数
  10. java用switch判断日期_Java-用switch判断季节
  11. 边境的悍匪—机器学习实战:第三章 分类
  12. 程序员们逢年过节初一十五都应该祭拜哪些神仙?
  13. 服务器固态硬盘raid没了,HP服务器磁盘阵列坏了怎么办,数据如何恢复?
  14. 【读书笔记】《大型互联网企业安全架构(石祖文)》
  15. SQL注入及其危害、防御手段
  16. 软考高级软件架构师学习笔记二(软件工程)
  17. PWM控制技术+Simulink仿真详解
  18. html如何在图片中放入音乐,如何给图片添加音乐
  19. 深入浅出matplotlib(12):椭圆示意图
  20. 莱文斯坦距离(编辑距离)算法 (Levenshtein Distance Algorithm)

热门文章

  1. pycharm 通过 SFTP 远程编辑项目的配置
  2. apache 创建多端口监听
  3. Java NIO 系列教程 转
  4. 初步认识pg_control文件之一
  5. 布局管理器 2----- 表格布局
  6. 【连载】【FPGA黑金开发板】NIOS II那些事儿--编程风格(三)
  7. feng作品推荐あかね色に染まる坂 染成茜色的坂道 (含下载、攻略)
  8. memcached+keepalived+magent高群集
  9. 分组交换网络的工作原理:分组交换网络的组成
  10. Vmware14虚拟机黑屏问题