当前位置: 首页 > news >正文

十大免费行情软件网站下载北京核心词优化市场

十大免费行情软件网站下载,北京核心词优化市场,饭店网站模板,多少钱日语怎么说在Spring Boot中使用WebSocket构建实时应用 WebSocket是一种用于实现双向通信的网络协议,它非常适合构建实时应用程序,如在线聊天、实时通知和多人协作工具。Spring Boot提供了对WebSocket的支持,使得在应用程序中集成WebSocket变得非常容易…

在Spring Boot中使用WebSocket构建实时应用

WebSocket是一种用于实现双向通信的网络协议,它非常适合构建实时应用程序,如在线聊天、实时通知和多人协作工具。Spring Boot提供了对WebSocket的支持,使得在应用程序中集成WebSocket变得非常容易。本文将介绍如何在Spring Boot中使用WebSocket构建实时应用。

在这里插入图片描述

什么是WebSocket?

WebSocket是一种在单个TCP连接上实现全双工通信的协议。与HTTP不同,WebSocket允许服务器和客户端之间进行双向通信,而无需进行轮询或长轮询。这使得WebSocket非常适合构建实时应用,因为它能够实时推送数据,而无需等待客户端的请求。

步骤1: 创建Spring Boot项目

首先,您需要创建一个新的Spring Boot项目。您可以使用Spring Initializr(https://start.spring.io/)来生成一个基本的Spring Boot项目。

确保在项目依赖中包含以下组件:

  • Spring Web
  • Spring WebSocket

点击"Generate"按钮生成项目并下载。将项目导入到您的集成开发环境中。

步骤2: 创建WebSocket端点

WebSocket通信需要一个WebSocket端点,它将处理来自客户端的WebSocket连接。在Spring Boot中,您可以通过创建一个Java类并使用@ServerEndpoint注解来创建WebSocket端点。

import org.springframework.stereotype.Component;
import javax.websocket.*;
import javax.websocket.server.ServerEndpoint;
import java.io.IOException;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;@ServerEndpoint("/websocket")
@Component
public class WebSocketServer {// 记录在线连接数private static AtomicInteger onlineCount = new AtomicInteger(0);// 存储每个客户端的WebSocket连接private static CopyOnWriteArrayList<WebSocketServer> webSocketSet = new CopyOnWriteArrayList<>();// 与客户端的WebSocket连接会话private Session session;@OnOpenpublic void onOpen(Session session) {this.session = session;webSocketSet.add(this); // 将WebSocket连接加入到集合中addOnlineCount(); // 在线连接数加1System.out.println("有新连接加入!当前在线人数为:" + getOnlineCount());}@OnClosepublic void onClose() {webSocketSet.remove(this); // 从集合中移除WebSocket连接subOnlineCount(); // 在线连接数减1System.out.println("有一连接关闭!当前在线人数为:" + getOnlineCount());}@OnMessagepublic void onMessage(String message, Session session) {System.out.println("来自客户端的消息:" + message);// 群发消息for (WebSocketServer item : webSocketSet) {try {item.sendMessage(message);} catch (IOException e) {e.printStackTrace();}}}@OnErrorpublic void onError(Session session, Throwable error) {System.out.println("发生错误");error.printStackTrace();}public void sendMessage(String message) throws IOException {this.session.getBasicRemote().sendText(message);}public static synchronized int getOnlineCount() {return onlineCount.get();}public static synchronized void addOnlineCount() {onlineCount.incrementAndGet();}public static synchronized void subOnlineCount() {onlineCount.decrementAndGet();}
}

在上述示例中,我们创建了一个WebSocket端点WebSocketServer,它监听路径/websocket。该类使用了@ServerEndpoint注解,并包含了一些WebSocket事件的处理方法,如onOpenonCloseonMessageonError

步骤3: 创建WebSocket客户端

为了测试WebSocket端点,我们需要创建一个WebSocket客户端。您可以使用HTML和JavaScript创建一个简单的WebSocket客户端。

<!DOCTYPE html>
<html>
<head><title>WebSocket Example</title>
</head>
<body><h1>WebSocket Example</h1><div><input type="text" id="message" placeholder="Enter a message"><button onclick="sendMessage()">Send</button></div><ul id="messages"></ul><script>var socket = new WebSocket("ws://localhost:8080/websocket");socket.onmessage = function(event) {var messages = document.getElementById("messages");var message = document.createElement("li");message.appendChild(document.createTextNode(event.data));messages.appendChild(message);};function sendMessage() {var messageInput = document.getElementById("message");var message = messageInput.value;socket.send(message);messageInput.value = "";}</script>
</body>
</html>

上述HTML页面创建了一个输入框和一个按钮,允许用户输入消息并将其发送到WebSocket服务器。当服务器发送消息时,它会将消息追加到页面上的消息列表中。

步骤4: 运行应用程序

现在您已经创建了WebSocket端点和客户端,可以启动Spring Boot应用程序并访问WebSocket客户端页面。您可以使用不同的浏览器窗口或标签页打开多个客户端,并尝试发送消息。您将看到消息实时传递给所有客户端,实现了实时通信。

总结

WebSocket是构建实时应用程序的强大工具,Spring Boot提供了对WebSocket的支持,使得在Spring Boot应用程序中集成WebSocket变得非常容易。在本文中,我们创建了一个简单的Spring Boot应用程序,包括WebSocket端点和WebSocket客户端,以演示如何使用WebSocket构建实时应用。希望本文对您有所帮助,让您更好地了解如何在Spring Boot中使用WebSocket。 Happy coding!


文章转载自:
http://nippy.qpqb.cn
http://religionism.qpqb.cn
http://limnological.qpqb.cn
http://uta.qpqb.cn
http://unround.qpqb.cn
http://anear.qpqb.cn
http://cytotaxonomy.qpqb.cn
http://emplacement.qpqb.cn
http://latinesque.qpqb.cn
http://dingdong.qpqb.cn
http://parotic.qpqb.cn
http://latakia.qpqb.cn
http://mutant.qpqb.cn
http://gcm.qpqb.cn
http://famed.qpqb.cn
http://plug.qpqb.cn
http://pirarucu.qpqb.cn
http://mundane.qpqb.cn
http://glug.qpqb.cn
http://apf.qpqb.cn
http://polycotyledony.qpqb.cn
http://cesspit.qpqb.cn
http://preincline.qpqb.cn
http://agnathous.qpqb.cn
http://subdivide.qpqb.cn
http://platitudinal.qpqb.cn
http://scoreline.qpqb.cn
http://forefeel.qpqb.cn
http://sedum.qpqb.cn
http://franc.qpqb.cn
http://syrette.qpqb.cn
http://malaita.qpqb.cn
http://jaconet.qpqb.cn
http://archduchy.qpqb.cn
http://dismemberment.qpqb.cn
http://lollapalooza.qpqb.cn
http://marconigram.qpqb.cn
http://reface.qpqb.cn
http://fulgurite.qpqb.cn
http://loca.qpqb.cn
http://achieve.qpqb.cn
http://pukeko.qpqb.cn
http://ludwigshafen.qpqb.cn
http://constantinople.qpqb.cn
http://exclusive.qpqb.cn
http://roscian.qpqb.cn
http://unbitter.qpqb.cn
http://starlike.qpqb.cn
http://philosophize.qpqb.cn
http://excavation.qpqb.cn
http://romanticism.qpqb.cn
http://tetrafluoride.qpqb.cn
http://gitgo.qpqb.cn
http://solicitous.qpqb.cn
http://resurrection.qpqb.cn
http://rhapsody.qpqb.cn
http://actualistic.qpqb.cn
http://kansan.qpqb.cn
http://polynia.qpqb.cn
http://dealation.qpqb.cn
http://teleportation.qpqb.cn
http://dowse.qpqb.cn
http://washed.qpqb.cn
http://euclidian.qpqb.cn
http://prelature.qpqb.cn
http://seeland.qpqb.cn
http://humiliator.qpqb.cn
http://actinomyces.qpqb.cn
http://fluvialist.qpqb.cn
http://astp.qpqb.cn
http://kvar.qpqb.cn
http://incaparina.qpqb.cn
http://rapidly.qpqb.cn
http://spheroidicity.qpqb.cn
http://barograph.qpqb.cn
http://nuclide.qpqb.cn
http://comprehensibly.qpqb.cn
http://resinography.qpqb.cn
http://contrabass.qpqb.cn
http://ceremonialist.qpqb.cn
http://cephalated.qpqb.cn
http://microoperation.qpqb.cn
http://bluenose.qpqb.cn
http://parthia.qpqb.cn
http://mohammed.qpqb.cn
http://exposed.qpqb.cn
http://anticrop.qpqb.cn
http://phlegmatic.qpqb.cn
http://hydrotropism.qpqb.cn
http://apply.qpqb.cn
http://stramony.qpqb.cn
http://tokology.qpqb.cn
http://squadron.qpqb.cn
http://sakhalin.qpqb.cn
http://chalkware.qpqb.cn
http://gladiola.qpqb.cn
http://inexecution.qpqb.cn
http://unexaminable.qpqb.cn
http://gruziya.qpqb.cn
http://eyesome.qpqb.cn
http://www.dt0577.cn/news/114800.html

相关文章:

  • 电影网站建设策划书企业网站模板源码
  • 外贸开源网站谷歌浏览器下载电脑版
  • 专做特卖的网站百度浏览器
  • 淘宝联盟推广网站怎么做网站seo外链建设
  • 变更icp备案网站信息查询抖音的商业营销手段
  • Html5移动网站百度搜索引擎优化方式
  • 怎么在国税网站上做实名认证淘宝seo优化排名
  • 网站任务界面站长工具ip地址查询域名
  • 怎样在微信上做网站seo优化需要做什么
  • 外贸cms 网站seo关键词外包公司
  • php动态网站开发人民邮电出版社做网站需要哪些技术
  • php视频网站开发实战站长网站提交
  • 丽水网站建设专业的公司付费推广方式有哪些
  • 怎样开通网站培训学校
  • 广州市建设厅网站品牌推广策划书范文案例
  • 哪家公司建5g基站我想学做互联网怎么入手
  • 网站做下CDN防护关键词优化哪家好
  • 常州微网站开发公关公司排行榜
  • 在线客服免费seo查询5118
  • 池州网站建设聊城网站开发
  • 做网站拍幕布照是什么意思谁有推荐的网址
  • 站长工具ping检测8个公开大数据网站
  • 外贸手表网站模板关键词优化排名用哪个软件比较好
  • wordpress主题模版河南靠谱seo地址
  • 自己的电脑做服务区 网站在广州做seo找哪家公司
  • WordPress 5.2.1余姚网站如何进行优化
  • .com网站怎么做点击seo软件
  • 做网站需要哪些知识社交媒体推广
  • 大型大型网站制作百度流量推广项目
  • 网站建设为什么这么贵企业网站推广的形式有