Files
ysj7705 69b647145f
CI / Type-check & Build (push) Failing after 5m50s
CI / Build & Push image (push) Skipped
first commit
2026-08-12 15:01:43 +09:00

50 lines
1.4 KiB
TypeScript

export interface JoinPayload {
roomId: string
clientId: string
nickname: string
accessToken: string
}
export interface StreamStartPayload {
streamId: string
}
export interface StreamStopPayload {
streamId: string
}
export interface WatchPayload {
streamId: string
broadcasterId: string
}
export interface SignalPayload {
to: string
from?: string
streamId: string
sdp?: RTCSessionDescriptionInit
candidate?: RTCIceCandidateInit
}
export type ClientToServerEvents = {
'room:join': (payload: JoinPayload, ack?: (res: { ok: boolean; error?: string }) => void) => void
'room:leave': () => void
'stream:start': (payload: StreamStartPayload, ack?: (res: { ok: boolean; error?: string }) => void) => void
'stream:stop': (payload: StreamStopPayload) => void
'watch:start': (payload: WatchPayload) => void
'watch:stop': (payload: WatchPayload) => void
'webrtc:offer': (payload: SignalPayload) => void
'webrtc:answer': (payload: SignalPayload) => void
'webrtc:ice': (payload: SignalPayload) => void
}
export type ServerToClientEvents = {
'room:state': (state: import('./room').RoomState) => void
'room:force-close': (payload: { reason: string }) => void
'room:error': (payload: { error: string }) => void
'webrtc:offer': (payload: SignalPayload) => void
'webrtc:answer': (payload: SignalPayload) => void
'webrtc:ice': (payload: SignalPayload) => void
'peer:left': (payload: { clientId: string }) => void
}