* 连接到指定命名空间
()
| 69 | * 连接到指定命名空间 |
| 70 | */ |
| 71 | connect(): Socket { |
| 72 | const socket = this.getSocket() |
| 73 | if (!socket.connected) { |
| 74 | socket.connect() |
| 75 | } |
| 76 | // Register visibilitychange handler to quickly reconnect when tab becomes visible |
| 77 | if (!this.visibilityHandler) { |
| 78 | this.visibilityHandler = () => { |
| 79 | if (document.visibilityState === 'visible' && this.socket && !this.socket.connected) { |
| 80 | console.log('[Socket] Page became visible, socket disconnected — reconnecting') |
| 81 | this.socket.connect() |
| 82 | } |
| 83 | } |
| 84 | document.addEventListener('visibilitychange', this.visibilityHandler) |
| 85 | } |
| 86 | return socket |
| 87 | } |
| 88 | |
| 89 | /** |
| 90 | * 断开连接并清理 socket 引用 |