feat: initial commit at project root
This commit is contained in:
48
internal/protocol/messages.js
Normal file
48
internal/protocol/messages.js
Normal file
@@ -0,0 +1,48 @@
|
||||
// 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) => JSON.stringify({ type: TypeAuthenticated, user_id: userID });
|
||||
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 });
|
||||
Reference in New Issue
Block a user