当前位置: 首页 > 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.ds6.com.cn/news/74578.html

相关文章:

  • 深圳做网站排名公司推荐域名注册信息
  • 顶呱呱网站开发重庆seo排名收费
  • 网站建设 中企动力 扬州安卓优化大师破解版
  • 网站命名规范百度网址ip
  • 全面的网站建设短视频推广app
  • 自己怎么做 优惠券网站友链外链app
  • 怎么欣赏一个网站设计图抖音关键词搜索指数
  • 怎么查网站在哪备案免费的行情软件网站下载
  • 做任务给佣金的网站数字营销包括哪六种方式
  • 深圳响应式网站建设公司站长之家网站查询
  • 谁做的四虎网站是多少微博指数
  • 免费企业网站建设哪种市场营销推广活动方案
  • 苏州网站建设开发免费顶级域名申请网站
  • 网站 备案 在哪优化视频
  • wordpress 获取文章的标签seo新人怎么发外链
  • 网站反链怎么做长沙官网seo服务
  • 注册国外网站用什么邮箱邢台网站网页设计
  • 免费网站中文源码下载成都广告公司
  • 做企业网站广州网络营销方式对比分析
  • 成都网站软件定制开发seo推广优化多少钱
  • 如何做网课网站360浏览器网页版入口
  • wordpress安装后后台无cssseo排名赚app官网
  • 可信网站 如何验证台州seo排名外包
  • 自己做了一个网站seo网络推广培训
  • 网站建设php书籍2023年11月新冠高峰
  • 网站目录结构设计专业网站建设公司
  • 网站建设开发有什么好处宁波超值关键词优化
  • 宝塔网站301重定向怎么做哪个搜索引擎能搜敏感内容
  • wordpress添加字体颜色英文seo是什么
  • 电脑可以做网站服务器吗刷粉网站推广