springboot业务功能实战(四)告别轮询,websocket的集成使用

这篇具有很好参考价值的文章主要介绍了springboot业务功能实战(四)告别轮询,websocket的集成使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

org.springframework.boot

spring-boot-starter-websocket

加入配置类

@Configuration

public class WebSocketConfig {

/**

  • 注入ServerEndpointExporter,

  • 这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint

*/

@Bean

public ServerEndpointExporter serverEndpointExporter() {

return new ServerEndpointExporter();

}

}

加入连接发送消息方法

@Component

@ServerEndpoint(“/websocket/{userName}”)

// 此注解相当于设置访问URL

public class WebSocket {

private Session session;

private static CopyOnWriteArraySet webSockets = new CopyOnWriteArraySet<>();

private static Map<String, Session> sessionPool = new HashMap<String, Session>();

private final static Logger logger = LoggerFactory.getLogger(LoginIntercept.class);

@OnOpen

public void onOpen(Session session, @PathParam(value = “userName”) String userName) {

this.session = session;

webSockets.add(this);

if (sessionPool.containsKey(userName)) {

sessionPool.put(userName + String.valueOf(session.getId()), session);

} else {

sessionPool.put(userName, session);

}

logger.info(“【websocket消息】有新的连接,总数为:” + webSockets.size());

}

@OnClose

public void onClose() {

webSockets.remove(this);

logger.info(“【websocket消息】连接断开,总数为:” + webSockets.size());

}

@OnMessage

public void onMessage(String message) {

logger.info(“【websocket消息】收到客户端消息:” + message);

}

/**

  • 功能描述: 此为广播消息

  • @param: [message] (消息)

  • @return: void ()

*/

public void sendAllMessage(String message) {

for (WebSocket webSocket : webSockets) {

logger.info(“【websocket消息】广播消息:” + message);

try {

if (webSocket.session.isOpen()) {

webSocket.session.getAsyncRemote().sendText(message);

}

} catch (Exception e) {

e.printStackTrace();

}

}

}

/**

  • 功能描述:此为单点消息 (发送文本) 现在可以发送给多客户端

  • @param: [userName, message] (接收人,发送消息)

  • @return: void ()

*/

public void sendTextMessage(String userName, String message) {

// 遍历sessionPool

for (String key : sessionPool.keySet()) {

// 存在当前用户

if (key.toString().indexOf(userName) != -1) {

Session session = sessionPool.get(key);

if (session != null && session.isOpen()) {

try {

session.getAsyncRemote().sendText(message);

} catch (Exception e) {

e.printStackTrace();

}

}

}

}

}

/**

  • 功能描述: 此为单点消息 (发送文本) 现在可以发送给多客户端

  • @param: [userName, message] (接收人,发送消息)

  • @return: void ()

*/

public void sendObjMessage(String userName, Object message) {

// 遍历sessionPool

for (String key : sessionPool.keySet()) {

// 存在当前用户

if (key.toString().indexOf(userName) != -1) {

Session session = sessionPool.get(key);

if (session != null && session.isOpen()) {

try {

session.getAsyncRemote().sendObject(message);

} catch (Exception e) {

e.printStackTrace();

}

}

}

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

springboot业务功能实战(四)告别轮询,websocket的集成使用,程序员,spring boot,websocket,后端

springboot业务功能实战(四)告别轮询,websocket的集成使用,程序员,spring boot,websocket,后端

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

springboot业务功能实战(四)告别轮询,websocket的集成使用,程序员,spring boot,websocket,后端

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

springboot业务功能实战(四)告别轮询,websocket的集成使用,程序员,spring boot,websocket,后端

最后

前端校招精编面试解析大全点击这里免费获取完整版pdf查看

75883)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

springboot业务功能实战(四)告别轮询,websocket的集成使用,程序员,spring boot,websocket,后端

最后

前端校招精编面试解析大全点击这里免费获取完整版pdf查看

springboot业务功能实战(四)告别轮询,websocket的集成使用,程序员,spring boot,websocket,后端文章来源地址https://www.toymoban.com/news/detail-852650.html

到了这里,关于springboot业务功能实战(四)告别轮询,websocket的集成使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Springboot 集成WebSocket作为客户端,含重连接功能,开箱即用

    使用演示 只需要init后调用sendMessage方法即可,做到开箱即用。内部封装了失败重连接、断线重连接等功能。 基于Springboot工程 引入websocket依赖 开箱即用的工具类

    2024年02月04日
    浏览(59)
  • Spring Boot进阶(48):【实战教程】SpringBoot集成WebSocket轻松实现实时消息推送

            WebSocket是一种新型的通信协议,它可以在客户端与服务器端之间实现双向通信,具有低延迟、高效性等特点,适用于实时通信场景。在SpringBoot应用中,集成WebSocket可以方便地实现实时通信功能,如即时聊天、实时数据传输等。         本文将介绍如何在Sprin

    2024年02月09日
    浏览(60)
  • SpringBoot 集成WebSocket详解

    感谢参考文章的博主,关于WebSocket概述和使用写的都很详细,这里结合自己的理解,整理了一下。 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 图来自参考文章: HTTP 是基于请求响应式的,

    2024年02月16日
    浏览(48)
  • springboot 集成websocket

    当前java项目普遍使用两种方式集成Websocket,一种是依赖Tomcat,一种是springboot内置的,本文采用springboot内置方案。 定义WebSocketConfig 2.定义WebSocketHandler 3.此时就算集成完毕了,本地客户端可以正常调用了,可以使用AiFox工具,个人觉得比postman更好用 4.如果是正式环境使用了ngi

    2024年01月20日
    浏览(35)
  • SpringBoot集成WebSocket讲解

    WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工( full-duplex )通信——允许服务器主动发送信息给客户端,建立客户端和服务器之间的通信渠道。浏览器和服务器仅需一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 1.2.1

    2024年02月06日
    浏览(42)
  • SpringBoot集成WebSocket(实时消息推送)

    🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢迎点赞 👍 收藏 ⭐留言 📝 🍓 更多文章请点击 调试工具 :http://coolaf.com/tool/chatt

    2024年04月29日
    浏览(43)
  • SpringBoot 集成 WebSocket 通信技术

    作者:禅与计算机程序设计艺术 WebSocket 是一种基于 TCP 的协议,它提供双向通信信道,可以实现浏览器和服务器端的全双工通信。通过 WebSocket ,网页应用可以实时地接收服务端传来的消息,并根据需要给予响应;也可以将用户操作如鼠标拖动、键盘输入等实时发送到服务端

    2024年02月07日
    浏览(42)
  • SpringBoot2.0集成WebSocket

    适用于单客户端,一个账号登陆一个客户端,登陆多个客户端会报错 The remote endpoint was in state [TEXT_FULL_WRITING]  这是因为此时的session是不同的,只能锁住一个session,解决此问题的方法把全局静态对象锁住,因为账号是唯一的 新建配置类 这个注解需要打上声明是开发环境,否

    2024年02月11日
    浏览(41)
  • SpringBoot集成websocket(4)|(使用okhttp3实现websocket)

    章节 第一章链接: SpringBoot集成websocket(1)|(websocket客户端实现) 第二章链接: SpringBoot集成websocket(2)|(websocket服务端实现以及websocket中转实现) HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户

    2024年02月10日
    浏览(41)
  • SpringBoot集成WebSocket实现在线聊天

    在项目过程中涉及到了在线聊天的业务,刚好有了解到WebSocket可以实现这一功能,因此便对其进行了一定的研究并做下笔记,在本文中主要借鉴了以下资源: WebSocket_百度百科 李士伟的小程序聊天工程 Springboot+Websocket中@Autowired注入service为null的解决方法 WebSocket是 HTML5规范 中

    2024年02月04日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包