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

做笔记的网站源码dedecms5.7 财经网站

做笔记的网站源码,dedecms5.7 财经网站,wordpress添加支付宝支付,wordpress 爱情主题公园🚀 苍穹外卖项目中的 WebSocket 实战:实现来单与催单提醒功能 在现代 Web 应用中,实时通信成为提升用户体验的关键技术之一。WebSocket 作为一种在单个 TCP 连接上进行全双工通信的协议,被广泛应用于需要实时数据交换的场景&#…

🚀 苍穹外卖项目中的 WebSocket 实战:实现来单与催单提醒功能

在这里插入图片描述

在现代 Web 应用中,实时通信成为提升用户体验的关键技术之一。WebSocket 作为一种在单个 TCP 连接上进行全双工通信的协议,被广泛应用于需要实时数据交换的场景,如在线聊天、实时通知等。本文将结合苍穹外卖项目,介绍如何使用 WebSocket 实现来单提醒与催单提醒功能。

📖 WebSocket 简介 WebSocket 是一种网络通信协议,允许在客户端和服务器之间建立持久的连接,双方可以随时发送数据。与传统的 HTTP 请求-响应模式不同,WebSocket 提供了更高效的通信方式,特别适用于需要实时交互的应用场景。

🛠️ 项目中 WebSocket 的应用场景 在苍穹外卖项目中,WebSocket 被用于实现以下功能:

  • 来单提醒:当用户下单并支付成功后,系统通过 WebSocket 向商家管理端发送通知,提示有新订单。
    • 催单提醒:用户在等待订单过程中,可以点击“催单”按钮,系统通过 WebSocket 向商家管理端发送催单通知。 这些功能依赖于客户端与服务器之间的实时通信,确保商家能够及时响应用户的需求。

🧱 实现步骤

  1. 引入WebSocket依赖
    pom.xml中添加以下依赖:
<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-websocket</artifactId>  
</dependency>  
  1. 配置WebSocket
    创建配置类WebSocketConfiguration,注册WebSocket组件:
@Configuration  
public class WebSocketConfiguration {  @Bean  public ServerEndpointExporter serverEndpointExporter() {  return new ServerEndpointExporter();  }  
}  
  1. 创建WebSocket服务端
    实现WebSocketServer类,处理连接、消息收发逻辑:
@Component  
@ServerEndpoint("/ws/{sid}")  
public class WebSocketServer {  private static Map<String, Session> sessionMap = new HashMap<>();  @OnOpen  public void onOpen(Session session, @PathParam("sid") String sid) {  sessionMap.put(sid, session);  }  @OnMessage  public void onMessage(String message, @PathParam("sid") String sid) {  // 处理接收到的消息  }  @OnClose  public void onClose(@PathParam("sid") String sid) {  sessionMap.remove(sid);  }  public void sendToAllClient(String message) {  for (Session session : sessionMap.values()) {  try {  session.getBasicRemote().sendText(message);  } catch (Exception e) {  e.printStackTrace();  }  }  }  
}  
  1. 业务逻辑中集成消息发送
  • 订单支付成功提醒
public void paySuccess(String outTradeNo) {  // 更新订单状态  Orders ordersDB = orderMapper.getByNumber(outTradeNo);  Orders orders = Orders.builder()  .id(ordersDB.getId())  .status(Orders.TO_BE_CONFIRMED)  .payStatus(Orders.PAID)  .checkoutTime(LocalDateTime.now())  .build();  orderMapper.update(orders);  // 构造消息并广播  Map<String, Object> map = new HashMap<>();  map.put("type", 1); // 1=来单提醒  map.put("orderId", ordersDB.getId());  map.put("content", "订单号:" + outTradeNo);  String json = JSON.toJSONString(map);  webSocketServer.sendToAllClient(json);  
}  
  • 用户催单提醒
public void reminder(Long id) {  Orders orders = orderMapper.selectByOId(id);  if (orders == null || orders.getStatus() != Orders.TO_BE_CONFIRMED) {  throw new OrderBusinessException("订单状态不允许催单");  }  Map<String, Object> map = new HashMap<>();  map.put("type", 2); // 2=催单提醒  map.put("orderId", id);  map.put("content", "订单号:" + orders.getNumber());  String json = JSON.toJSONString(map);  webSocketServer.sendToAllClient(json);  
}  
  1. 前端消息处理
    建立WebSocket连接并解析通知:
// 初始化连接(clientId为前端用户标识)  
var websocket = new WebSocket("ws://localhost:8080/ws/" + clientId);  // 消息监听  
websocket.onmessage = function(event) {  var data = JSON.parse(event.data);  if (data.type === 1) {  alert("来单提醒:" + data.content);  } else if (data.type === 2) {  alert("催单提醒:" + data.content);  }  
};  

🧪 测试与验证

测试流程:

  1. 启动后端服务与前端页面,建立WebSocket连接;
  2. 模拟用户下单并支付,验证商家端是否弹出“来单提醒”;
  3. 触发用户催单操作,验证是否收到“催单提醒”弹窗。

Nginx配置(如需代理):

location /ws/ {  proxy_pass http://localhost:8080;  proxy_http_version 1.1;  proxy_set_header Upgrade $http_upgrade;  proxy_set_header Connection "Upgrade";  
}  

🧠 总结

通过WebSocket技术,苍穹外卖实现了毫秒级实时通知,显著提升了商家订单处理效率与用户体验。WebSocket在实时通信场景(如在线聊天、数据监控)中具有广泛适用性,是现代Web开发的核心技术之一。


文章转载自:

http://Y7bMmmfX.ctqLq.cn
http://270G5QJw.ctqLq.cn
http://HXBWOLo8.ctqLq.cn
http://KuPfJRhI.ctqLq.cn
http://Xv7tEwer.ctqLq.cn
http://uDjec3E0.ctqLq.cn
http://ZhmWPGfX.ctqLq.cn
http://AnR6Lo6d.ctqLq.cn
http://2z7vhS5n.ctqLq.cn
http://D4itVCjv.ctqLq.cn
http://NgY1MEGs.ctqLq.cn
http://8LHTWlV0.ctqLq.cn
http://B5rKYRd9.ctqLq.cn
http://VvJCN07m.ctqLq.cn
http://OM7dVlfr.ctqLq.cn
http://ylD0oX8K.ctqLq.cn
http://tGcan3Nu.ctqLq.cn
http://W7NSnPP0.ctqLq.cn
http://CWwdLvB4.ctqLq.cn
http://CcdsPwee.ctqLq.cn
http://ZED9oiVk.ctqLq.cn
http://79NJNTAP.ctqLq.cn
http://LAx9zz1d.ctqLq.cn
http://z13Yt9WG.ctqLq.cn
http://vdIoPxfI.ctqLq.cn
http://cxurPJrM.ctqLq.cn
http://1ALZBLjB.ctqLq.cn
http://ZX4JBTfm.ctqLq.cn
http://Mpdg18rQ.ctqLq.cn
http://I3mUlXTi.ctqLq.cn
http://www.dtcms.com/wzjs/606558.html

相关文章:

  • 网站建设策划书范本wordpress 生成 app
  • 网站建设开什么名目网站备案 查询
  • 取消教育网站前置审批凯里专注网站建设报价
  • 做礼品的网站网页制作模板官网
  • 做电影网站的资源从哪里换自适应网站做百度推广
  • 海外仓网站建设昆明网页建站模板
  • 个人网站建设书电子商务网站软件建设核心
  • 用html5做的商务网站哪里有网站建设工程
  • kali钓鱼网站制作网站空间面板
  • win7可以做网站吗网页设计的费用
  • 建一个com网站要多少钱响应式网页设计与制作
  • 建设银行官方网站买五粮液酒50款软件app免费下载大全
  • 网站上做旅游卖家要学什么条件夫妻性做受视频什么网站
  • 一级a做爰片_相关网站重庆公司注册地址提供
  • 做网站卖东西流程企业型网站建设步骤及注意事项
  • wordpress显示插件怎么用wordpress中文网站优化
  • 高密网站建设价格网站建设手机版模板
  • 企业培训 电子商务网站建设 图片常见的跨境电商平台有哪些
  • 网站建设公司代理网站建设项目分工
  • 辽宁省建设厅网站升级如何统计网站pv
  • 帝国做企业网站网站开发外文翻译
  • 网站广告链接怎么做有趣实用的网站
  • 古风自己做头像的网站wordpress点击弹窗插件
  • 网站加速工具陕西省建设教育培训网
  • 新站网站如何做Seo建设网站公司怎么建站
  • 佛山知名网站建设公司公司网站备案选个人
  • 有什么有趣的网站多语言网站是怎么做的
  • 做蛋糕网站有哪些wordpress 调用中等图片
  • 百度视频免费高清网站wordpress网站下载文件
  • 安徽省建设厅查询网站枣庄住房和城乡建设厅网站