From 7c4de2cb1422f6f4748928df5bbcc802d85dd820 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sat, 23 Aug 2025 14:47:15 +0800
Subject: [PATCH] 1
---
src/components/stock-list.vue | 30 +++++++++++++++++++++++++++++-
1 files changed, 29 insertions(+), 1 deletions(-)
diff --git a/src/components/stock-list.vue b/src/components/stock-list.vue
index a2b8ad3..54685f0 100644
--- a/src/components/stock-list.vue
+++ b/src/components/stock-list.vue
@@ -66,6 +66,7 @@
import nPagination from "@/components/nPagination.vue";
import * as api from "@/axios/api";
import { Toast } from "vant";
+import { WhrWebSocket } from "@/utils/WhrWebSocket";
export default {
name: "stock_list",
components: {
@@ -76,7 +77,7 @@
pageNum: 1,
pageSize: 10,
total: 1,
- stockList: []
+ stockList: [],
};
},
props: {
@@ -113,6 +114,7 @@
},
mounted() {
this.getStockList();
+ this.initWebSocket();
},
methods: {
// 获取数据
@@ -161,6 +163,32 @@
} else {
Toast.fail(data.msg);
}
+ },
+ // 连接ws实时监控变动
+ initWebSocket() {
+ console.log("initWebSocket");
+ this.Trade = new WhrWebSocket({
+ path: `wss://ws.acapl.net/websocket-server `,
+ onmessage: this.getTradeMessage
+ });
+
+ this.Trade.init();
+ },
+ getTradeMessage({ data }) {
+ let result = JSON.parse(data);
+ let pid = result.pid;
+ let userToUpdate = this.stockList.find(item => item.code == pid);
+ if (userToUpdate) {
+ // 更新对象数据
+ userToUpdate.nowPrice = result.last;
+ userToUpdate.hcrateP = result.pcp;
+ }
+ }
+ },
+ beforeDestroy() {
+ if (this.Trade) {
+ this.Trade.close();
+ console.log("WebSocket disconnected");
}
}
};
--
Gitblit v1.9.3