chore: remote forwarding integration
This commit is contained in:
@@ -11,6 +11,8 @@ export interface ChatServerEvents {
|
||||
recall: (from: DeviceInfo, messageId: string) => void
|
||||
typing: (from: DeviceInfo) => void
|
||||
read: (from: DeviceInfo, upToMessageId: string) => void
|
||||
// 任意 ws 帧 (含 terminal/forward/usb 等), 让上层路由分发
|
||||
frame: (from: DeviceInfo, frame: WsFrame) => void
|
||||
}
|
||||
|
||||
export class ChatServer extends EventEmitter {
|
||||
@@ -52,6 +54,8 @@ export class ChatServer extends EventEmitter {
|
||||
} catch {
|
||||
return
|
||||
}
|
||||
// 通用: 任何帧都抛 'frame', 上层 (ipc.bindNetworkContext) 自行路由
|
||||
if (peer) this.emit('frame', peer, frame)
|
||||
switch (frame.type) {
|
||||
case 'hello':
|
||||
if (frame.from && frame.from.deviceId) {
|
||||
@@ -79,12 +83,12 @@ export class ChatServer extends EventEmitter {
|
||||
if (peer) this.emit('recall', peer, frame.messageId)
|
||||
break
|
||||
case 'read':
|
||||
// 已读回执: 接收方已看到 upTo (含), 把 ≤ upTo 的发送方消息视为已读
|
||||
if (peer) this.emit('read', peer, frame.upTo)
|
||||
break
|
||||
case 'typing':
|
||||
if (peer) this.emit('typing', peer)
|
||||
break
|
||||
// terminal / forward / usb 由 'frame' 事件统一交给上层处理
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user