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

广东网站建设找网站改进建议有哪些

广东网站建设找,网站改进建议有哪些,易语言做检测网站更新,做网站网站制作WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信-浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并实现 双向数据传输。 使用 导入maven坐标 <dependency><groupId>org.springframework.bo…

WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信-浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接,并实现 双向数据传输。

使用

导入maven坐标

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

前端页面

<!DOCTYPE HTML>
<html>
<head><meta charset="UTF-8"><title>WebSocket Demo</title>
</head>
<body><input id="text" type="text" /><button onclick="send()">发送消息</button><button onclick="closeWebSocket()">关闭连接</button><div id="message"></div>
</body>
<script type="text/javascript">var websocket = null;var clientId = Math.random().toString(36).substr(2);//判断当前浏览器是否支持WebSocketif('WebSocket' in window){//连接WebSocket节点websocket = new WebSocket("ws://localhost:8080/ws/"+clientId);}else{alert('Not support websocket')}//连接发生错误的回调方法websocket.onerror = function(){setMessageInnerHTML("error");};//连接成功建立的回调方法websocket.onopen = function(){setMessageInnerHTML("连接成功");}//接收到消息的回调方法websocket.onmessage = function(event){setMessageInnerHTML(event.data);}//连接关闭的回调方法websocket.onclose = function(){setMessageInnerHTML("close");}//监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。window.onbeforeunload = function(){websocket.close();}//将消息显示在网页上function setMessageInnerHTML(innerHTML){document.getElementById('message').innerHTML += innerHTML + '<br/>';}//发送消息function send(){var message = document.getElementById('text').value;websocket.send(message);}//关闭连接function closeWebSocket() {websocket.close();}
</script>
</html>

后端Server

 package com.sky.websocket;import org.springframework.stereotype.Component;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;/*** WebSocket服务*/
@Component
@ServerEndpoint("/ws/{sid}")
public class WebSocketServer {//存放会话对象private static Map<String, Session> sessionMap = new HashMap();/*** 连接建立成功调用的方法*/@OnOpenpublic void onOpen(Session session, @PathParam("sid") String sid) {System.out.println("客户端:" + sid + "建立连接");sessionMap.put(sid, session);}/*** 收到客户端消息后调用的方法** @param message 客户端发送过来的消息*/@OnMessagepublic void onMessage(String message, @PathParam("sid") String sid) {System.out.println("收到来自客户端:" + sid + "的信息:" + message);}/*** 连接关闭调用的方法** @param sid*/@OnClosepublic void onClose(@PathParam("sid") String sid) {System.out.println("连接断开:" + sid);sessionMap.remove(sid);}/*** 群发** @param message*/public void sendToAllClient(String message) {Collection<Session> sessions = sessionMap.values();for (Session session : sessions) {try {//服务器向客户端发送消息session.getBasicRemote().sendText(message);} catch (Exception e) {e.printStackTrace();}}}}

编写配置类

package com.sky.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;/*** WebSocket配置类,用于注册WebSocket的Bean*/
@Configuration
public class WebSocketConfiguration {@Beanpublic ServerEndpointExporter serverEndpointExporter() {return new ServerEndpointExporter();}
}

定时任务类

package com.sky.task;import com.sky.websocket.WebSocketServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;@Component
public class WebSocketTask {@Autowiredprivate WebSocketServer webSocketServer;/*** 通过WebSocket每隔5秒向客户端发送消息*/@Scheduled(cron = "0/5 * * * * ?")public void sendMessageToClient() {webSocketServer.sendToAllClient("这是来自服务端的消息:" + DateTimeFormatter.ofPattern("HH:mm:ss").format(LocalDateTime.now()));}
}

测试成功:

image-20231025225532485

public void onActivityResult(ActivityResult result) {if (result != null) {Intent data = result.getData();if (data != null && result.getResultCode() == RESULT_OK) {boolean isCheated = data.getBooleanExtra(CheatActivity.IS_CHEATED, false);if (isCheated) {Toast.makeText(getApplicationContext(), "使用答案提示", LENGTH_SHORT).show();} else {Toast.makeText(getApplicationContext(), "没有使用答案提示", LENGTH_SHORT).show();}} else {Toast.makeText(getApplicationContext(), "从CheatAcitivity返回", LENGTH_SHORT).show();}}
}
http://www.15wanjia.com/news/167305.html

相关文章:

  • 好创意网站有哪些方面朔州如何做百度的网站
  • 新手做网页做那个网站简单做物流网站费用
  • 冀州建设局网站南通网站制作推广
  • 用网站做宣传的方案wordpress 首页链接
  • 在线制作logo网站怎么创建网站论坛
  • 使用循环视频做背景的网站欧美在线做视频网站
  • 国内外网站建设2017做笑话网站需要什么
  • 葫芦岛网站制作做火情监控网站需要用什么系统
  • 网站建设询价石家庄做淘宝网站
  • thinkphp网站开发技术wordpress换域名安装
  • 自己架设服务器做网站智能网站建设制作
  • 为什么会显示危险网站phpcms网站
  • 网站开发流程 文档小程序商城开发商
  • 商业网站开发的实训小结怎么写网页在线代理上网
  • 丽水建设局门户网站企业的目标市场的营销策略分为
  • 怎样提高自己网站排名南宁网站排名优化电话
  • 我要学做网站wordpress百度抓取
  • 网站正在建设中永久如何看网站是否有做网站地图
  • 下载整个网站的软件百度做公司网站多少钱
  • 网络营销案例分析怎么写郑州网站建设 seo
  • 深圳企业官网网站建设哪家好网页设计模板素材旅游
  • 快速建站公司怎么样南昌市住房和城乡建设局网站
  • 甘洛网站建设产品推广广告
  • 网站建设 中企动力南昌0792Cocos做网站
  • 南昌网站建设托管网站编辑工作内容怎么写
  • 湘潭自助建站系统互联网营销师含金量
  • aspnet网站开发实例论文做网站在什么地方找
  • 建站平台在线提交功能网站的源码
  • 做网站商城需要多少钱为学校网站做网站推广策划书
  • 安徽道遂建设工程有限公司网站三门峡网站建设电话