Files
qhmes/web-dist/js/useWebSocket-CMyoaPFz.js
2026-06-16 18:19:57 +08:00

2 lines
1.4 KiB
Java

import{a1 as b,u as w,ai as d,aj as k,al as g}from"./index-X7Y8jykP.js";import{u as h}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";let s;const i=new Map;let p="",l=0;const f=new Set;function C(e){return f.add(e),()=>f.delete(e)}function m(){const e=b(),o=w(),t=h(o.getUserInfo);if(!(t!=null&&t.id))return"";const n=d()||"",r=k(n).toString(),a=`${t.id}_${r}`;let c=(e.domainUrl||"").replace("https://","wss://").replace("http://","ws://");c=c.replace(/\/$/,"");const u=(e.apiUrl||"/jeecg-boot").replace(/\/$/,""),S=u.startsWith("/")?u:`/${u}`;return`${c}${S}/websocket/${a}`}function v(){var o;const e=m();e&&(((o=s==null?void 0:s.status)==null?void 0:o.value)==="OPEN"&&p===e||W(e))}function W(e){p=e;const o=d()||"";s=g(e,{autoReconnect:{retries:10,delay:5e3},heartbeat:{message:"ping",interval:55e3},protocols:[o],onConnected:function(t){l++,l>1&&f.forEach(n=>{try{n()}catch(r){}})},onDisconnected:function(t,n){},onError:function(t,n){},onMessage:function(t,n){try{if(n.data==="ping")return;const r=JSON.parse(n.data);for(const a of i.keys())try{a(r)}catch(c){}}catch(r){}}})}function E(e){i.has(e)||typeof e=="function"&&i.set(e,null)}function M(e){i.delete(e)}function j(){return s}export{m as buildSystemWebSocketUrl,W as connectWebSocket,v as ensureWebSocketConnected,M as offWebSocket,E as onWebSocket,C as onWebSocketReconnect,j as useMyWebSocket};