@wendongfly/myhi 1.0.122 → 1.0.124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/chat.html CHANGED
@@ -995,6 +995,38 @@
995
995
  socket.on('connect_error', () => { _reconnectFails++; showOverlay(_reconnectFails >= 5 ? '连接失败,请检查网络' : `正在重连... (${_reconnectFails})`, _reconnectFails >= 10); });
996
996
  socket.on('disconnect', () => { showOverlay('已断开连接,正在重连...'); });
997
997
 
998
+ // ── 移动端连接保活 ──────────────────────────────
999
+ // 页面切换到前台时立即检查连接
1000
+ document.addEventListener('visibilitychange', () => {
1001
+ if (!document.hidden) {
1002
+ if (!socket.connected) {
1003
+ showOverlay('正在重新连接...');
1004
+ socket.connect();
1005
+ } else {
1006
+ // 连接还在,重新 join 确保状态同步
1007
+ socket.emit('join', SESSION_ID);
1008
+ }
1009
+ }
1010
+ });
1011
+
1012
+ // 网络恢复时立即重连
1013
+ window.addEventListener('online', () => {
1014
+ if (!socket.connected) {
1015
+ showOverlay('网络已恢复,正在重连...');
1016
+ socket.connect();
1017
+ }
1018
+ });
1019
+ window.addEventListener('offline', () => {
1020
+ showOverlay('网络已断开,等待恢复...');
1021
+ });
1022
+
1023
+ // 应用层心跳:每 15 秒检查连接状态
1024
+ setInterval(() => {
1025
+ if (!document.hidden && !socket.connected) {
1026
+ socket.connect();
1027
+ }
1028
+ }, 15000);
1029
+
998
1030
  socket.on('joined', (session) => {
999
1031
  currentSession = session;
1000
1032
  overlay.classList.add('hidden');
package/dist/index.html CHANGED
@@ -615,6 +615,16 @@
615
615
  // Refresh periodically
616
616
  setInterval(() => { if (socket.connected) socket.emit('list'); }, 5000);
617
617
 
618
+ // ── 移动端连接保活 ──────────────────────────────
619
+ document.addEventListener('visibilitychange', () => {
620
+ if (!document.hidden) {
621
+ if (!socket.connected) socket.connect();
622
+ else socket.emit('list');
623
+ }
624
+ });
625
+ window.addEventListener('online', () => { if (!socket.connected) socket.connect(); });
626
+ setInterval(() => { if (!document.hidden && !socket.connected) socket.connect(); }, 15000);
627
+
618
628
  // ── Render ──────────────────────────────────────────────────
619
629
  const PALETTE = ['#7c3aed','#2563eb','#059669','#b45309','#db2777','#0891b2'];
620
630