ws.js 1000 B

1234567891011121314151617181920212223242526272829303132333435
  1. import WebSocketService from "@/utils/WebSocketService";
  2. export default {
  3. namespaced: true,
  4. state: {
  5. webSocketState: "closed", // 'open' | 'connecting' | 'error' | 'closed'
  6. },
  7. mutations: {
  8. setWebSocketStatus(state, status) {
  9. console.log("WebSocket状态已更新:", status);
  10. state.webSocketState = status;
  11. },
  12. },
  13. actions: {
  14. connectWebSocket({ commit, rootState }) {
  15. const token = rootState.user?.token;
  16. WebSocketService.setStore(this); // 注入 store
  17. commit("setWebSocketStatus", "connecting");
  18. WebSocketService.initWebSocket(token);
  19. },
  20. reconnectWebSocket({ state, commit }) {
  21. if (state.webSocketState === "open" || state.webSocketState === "connecting") {
  22. console.log("WebSocket 已连接或正在连接中,跳过重连");
  23. return;
  24. }
  25. commit("setWebSocketStatus", "connecting");
  26. WebSocketService.reconnect();
  27. },
  28. closeWebSocket() {
  29. WebSocketService.close();
  30. }
  31. }
  32. };