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

建立什么样的网站好今日军事新闻报道

建立什么样的网站好,今日军事新闻报道,如何设置个人网站,中企动力北京总部地址一、什么是websocket WebSocket是一种在Web应用程序中实现实时双向通信的协议。它为浏览器和服务器之间提供了一种持久连接,在一个连接上可以双向传输数据。相比传统的HTTP协议,WebSocket具有更低的延迟和更高的效率。 WebSocket使用了类似于握手的方式来…

一、什么是websocket

        WebSocket是一种在Web应用程序中实现实时双向通信的协议。它为浏览器和服务器之间提供了一种持久连接,在一个连接上可以双向传输数据。相比传统的HTTP协议,WebSocket具有更低的延迟和更高的效率。

        WebSocket使用了类似于握手的方式来建立连接。在握手过程中,浏览器和服务器会交换一些信息,以建立一个WebSocket连接。一旦连接建立,浏览器和服务器之间就可以实时地传输数据,而不需要每次都发起新的HTTP请求。

        WebSocket协议可以在不同的平台和编程语言中实现,包括Web浏览器和服务器端。在Web浏览器中,可以使用JavaScript中的WebSocket API来实现WebSocket连接。在服务器端,可以使用各种编程语言和框架来实现WebSocket服务器。

        WebSocket的应用场景非常广泛。它可以用于实时聊天应用、实时游戏、实时股票行情、实时协作编辑等需要实时通信的应用程序。通过WebSocket,开发人员可以更加方便地实现实时通信功能,提高用户体验。

        这里我们使用Java配合springboot2进行使用。

二、依赖坐标地址

1.springBoot父级依赖

<!--依赖的父级工程-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.6</version><relativePath/>
</parent>

2.springBoot依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

3.webSocket依赖

<dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.8</version>
</dependency>

三、代码 

        不多说了,直接拿去看吧,都在注释里面了。

服务器:

package com.blockchain.qgy.network.websocket;import com.blockchain.qgy.util.Strings;
import org.java_websocket.WebSocket;
import org.java_websocket.handshake.ClientHandshake;
import org.java_websocket.server.WebSocketServer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;@Component
public class P2pPointServer {//日志记录private Logger logger = LoggerFactory.getLogger(P2pPointServer.class);//本机的Server的WebSocket端口private Integer port = 7001;//所有连接到服务器的WebSocket缓存器private List<WebSocket> localSockets = new ArrayList<>();public List<WebSocket> getLocalSockets() {return localSockets;}public void setLocalSockets(List<WebSocket> localSockets) {this.localSockets = localSockets;}@PostConstruct@Order(1)public void initServer(){final WebSocketServer socketServer = new WebSocketServer(new InetSocketAddress(port)) {//创建链接成功时触发@Overridepublic void onOpen(WebSocket webSocket, ClientHandshake clientHandshake) {sendMessage(webSocket,"孩子们,我回来了!");localSockets.add(webSocket);}//断开连接时触发@Overridepublic void onClose(WebSocket webSocket, int i, String s, boolean b) {logger.info(webSocket.getRemoteSocketAddress() + "客户端与服务器断开连接");localSockets.remove(webSocket);}//接收到消息时触发@Overridepublic void onMessage(WebSocket webSocket, String s) {logger.info("收到了客户端的消息:" + s);sendMessage(webSocket,"孩子们,我收到消息了");}//连接发送错误时调用,后触发onClose方法@Overridepublic void onError(WebSocket webSocket, Exception e) {logger.info(webSocket.getRemoteSocketAddress() + "客户端与服务器连接发送错误");localSockets.remove(webSocket);}@Overridepublic void onStart() {logger.info("孩子们我要启动了!!");}};socketServer.start();logger.info("Man!what can I say,我已经启动了");}/*** 一对一发送* @param webSocket:客户端* @param message:信息*/public void sendMessage(WebSocket webSocket,String message){logger.info("发送给"+webSocket.getRemoteSocketAddress().getPort() + "的p2p消息是:" + message);webSocket.send(message);}/*** 一对多发送* @param message:信息*/public void broatcast(String message){if (localSockets.size() == 0 || Strings.isNullOrEmpty(message)) return;logger.info("张开第三只眼");for (WebSocket webSocket : localSockets){this.sendMessage(webSocket,message);}logger.info("孩子们我燃尽了");}
}

客户端:

package com.blockchain.qgy.network.websocket;import com.blockchain.qgy.util.Strings;
import org.java_websocket.WebSocket;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;@Component
public class P2pPointClient {//日志记录private Logger logger = LoggerFactory.getLogger(P2pPointClient.class);//服务器端的地址private String wsUrl = "ws://localhost:7001/";//所有连接到客户端的WebSocket缓存器private List<WebSocket> localSockets = new ArrayList<>();public List<WebSocket> getLocalSockets() {return localSockets;}public void setLocalSockets(List<WebSocket> localSockets) {this.localSockets = localSockets;}@PostConstruct@Order(2)public void connectServer(){try {final WebSocketClient socketClient = new WebSocketClient(new URI(wsUrl)) {@Overridepublic void onOpen(ServerHandshake serverHandshake) {sendMessage(this,"孩子们,我是客户端");localSockets.add(this);}@Overridepublic void onMessage(String s) {logger.info("收到服务器发来的信息:"+s);}@Overridepublic void onClose(int i, String s, boolean b) {logger.info("断开连接");localSockets.remove(this);}@Overridepublic void onError(Exception e) {logger.info("连接错误");localSockets.remove(this);}};socketClient.connect();} catch (Exception e) {e.printStackTrace();logger.info("连接错误");}}/*** 一对一发送* @param webSocket:客户端* @param message:信息*/public void sendMessage(WebSocket webSocket,String message){logger.info("发送给"+webSocket.getRemoteSocketAddress().getPort() + "的p2p消息是:" + message);webSocket.send(message);}/*** 一对多发送* @param message:信息*/public void broatcast(String message){if (localSockets.size() == 0 || Strings.isNullOrEmpty(message)) return;logger.info("张开第三只眼");for (WebSocket webSocket : localSockets){this.sendMessage(webSocket,message);}logger.info("孩子们我燃尽了");}
}

http://www.15wanjia.com/news/52115.html

相关文章:

  • 网站开发文档模板 开源什么是新媒体运营
  • uzi视频网站谁做的网站外包
  • 典当行网站源码网站建设的流程是什么
  • 怎么做招生网站app优化
  • 国外比较有名的设计工作室网站企业营销策略分析论文
  • 生产类营销型网站微信管理工具
  • 长春专业网站建设价格seo培训价格
  • 郑州电商网站建设企业网站建设案例
  • 怎么创建公众号微信北京网站优化合作
  • 海尔公司的网站建设广州新闻头条最新消息
  • 网站做优化和推广哪个好爱站网长尾关键词挖掘工具电脑版
  • 如何做网站渗透测试网络广告联盟
  • 网站界面排版怎么建企业网站
  • 专业建设网站应该怎么做网络营销策划方案的目的
  • 公司建立网站的好处高端企业网站建设
  • 运营型网站企业官网搭建
  • 汇编做网站友情链接交易平台
  • 免费建站 永久上海互联网公司排名
  • 怎么查看网站收录怎么优化网站性能
  • 做网站游戏推广赚钱吗免费培训网站
  • wordpress智慧面板成都百度seo优化公司
  • 微信端网站开发好看的web网页
  • 兰州医院网站制作发布
  • 营销型网站建立费用网络推广营销网站建设专家
  • 档案网站的建设凌哥seo
  • 地名网站建设费用百度推广销售员好做吗
  • 做特卖的网站上品折扣seo关键词排名优化推荐
  • 南宁建行 网站锦州网站seo
  • 做一个和淘宝一样的网站要多少钱广东短视频seo营销
  • wordpress日期英文网站优化服务