forked from BRETT/BRETT
Initial Commit
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
export default defineWebSocketHandler({
|
||||
async open(peer) {
|
||||
try {
|
||||
registerGlobalPeer(peer)
|
||||
const headers = peer.request?.headers as { cookie?: string, get?: (name: string) => string | null } | undefined
|
||||
const cookie = headers?.get?.('cookie') ?? headers?.cookie
|
||||
const userId = await getUserIdFromCookieHeader(cookie)
|
||||
if (userId !== null) {
|
||||
;(peer.context as { userId?: number }).userId = userId
|
||||
registerPeer(userId, peer)
|
||||
}
|
||||
} catch {
|
||||
// Peer kann während des async-Lookups schon weg sein — nicht als Crash propagieren
|
||||
}
|
||||
},
|
||||
close(peer) {
|
||||
unregisterGlobalPeer(peer)
|
||||
unregisterPeer((peer.context as { userId?: number }).userId, peer)
|
||||
},
|
||||
error(peer, error) {
|
||||
console.warn('[ws] Fehler bei Peer:', error instanceof Error ? error.message : error)
|
||||
},
|
||||
})
|
||||
Reference in New Issue
Block a user