49 lines
2.9 KiB
JavaScript
49 lines
2.9 KiB
JavaScript
// Message type constants
|
|
export const TypeAuthenticate = 'authenticate';
|
|
export const TypeCreateSession = 'create_session';
|
|
export const TypeJoinSession = 'join_session';
|
|
export const TypeOffer = 'offer';
|
|
export const TypeAnswer = 'answer';
|
|
export const TypeICECandidate = 'ice_candidate';
|
|
export const TypeHeartbeat = 'heartbeat';
|
|
export const TypeEndCall = 'end_call';
|
|
|
|
export const TypeAuthenticated = 'authenticated';
|
|
export const TypeSessionCreated = 'session_created';
|
|
export const TypeSessionJoined = 'session_joined';
|
|
export const TypeParticipantJoined = 'participant_joined';
|
|
export const TypeParticipantLeft = 'participant_left';
|
|
export const TypeCallTimeout = 'call_timeout';
|
|
export const TypeCallEnded = 'call_ended';
|
|
export const TypePong = 'pong';
|
|
export const TypeUnauthorized = 'unauthorized';
|
|
export const TypeError = 'error';
|
|
|
|
// Error codes
|
|
export const ErrRideNotActive = 'ride_not_active';
|
|
export const ErrRideAlreadyStarted = 'ride_already_started';
|
|
export const ErrRideCancelled = 'ride_cancelled';
|
|
export const ErrSessionExists = 'session_exists';
|
|
export const ErrSessionNotFound = 'session_not_found';
|
|
export const ErrSessionFull = 'session_full';
|
|
export const ErrUnauthorizedUser = 'unauthorized_user';
|
|
export const ErrTokenExpired = 'token_expired';
|
|
export const ErrTokenInvalid = 'token_invalid';
|
|
export const ErrPayloadTooLarge = 'payload_too_large';
|
|
export const ErrRateLimited = 'rate_limited';
|
|
|
|
// Helper constructors for encoding server messages
|
|
export const newAuthenticated = (userID, iceServers) => JSON.stringify({ type: TypeAuthenticated, user_id: userID, ice_servers: iceServers });
|
|
export const newSessionCreated = (sessionID, rideID, expiresIn) => JSON.stringify({ type: TypeSessionCreated, session_id: sessionID, ride_id: rideID, expires_in: expiresIn });
|
|
export const newSessionJoined = (sessionID, rideID) => JSON.stringify({ type: TypeSessionJoined, session_id: sessionID, ride_id: rideID });
|
|
export const newParticipantJoined = (role) => JSON.stringify({ type: TypeParticipantJoined, role });
|
|
export const newRelayOffer = (sdp) => JSON.stringify({ type: TypeOffer, sdp });
|
|
export const newRelayAnswer = (sdp) => JSON.stringify({ type: TypeAnswer, sdp });
|
|
export const newRelayICE = (candidate) => JSON.stringify({ type: TypeICECandidate, candidate });
|
|
export const newParticipantLeft = (role) => JSON.stringify({ type: TypeParticipantLeft, role });
|
|
export const newCallTimeout = (reason) => JSON.stringify({ type: TypeCallTimeout, reason });
|
|
export const newCallEnded = (reason) => JSON.stringify({ type: TypeCallEnded, reason });
|
|
export const newPong = () => JSON.stringify({ type: TypePong });
|
|
export const newUnauthorized = (reason) => JSON.stringify({ type: TypeUnauthorized, reason });
|
|
export const newError = (code, message) => JSON.stringify({ type: TypeError, code, message });
|