chore: websocket

This commit is contained in:
mahyargdz
2025-07-10 15:45:26 +03:30
parent a761dc1718
commit 6933646a0e
18 changed files with 2104 additions and 42 deletions
@@ -0,0 +1,47 @@
export const WEBSOCKET_EVENTS = {
// Connection Events
CONNECTION_ESTABLISHED: "connection_established",
CONNECTION_ERROR: "connection_error",
USER_JOINED: "user_joined",
USER_LEFT: "user_left",
// Email Events - Server to Client
NEW_MESSAGE: "new_message",
MESSAGE_STATUS_UPDATE: "message_status_update",
MESSAGE_MOVED: "message_moved",
MESSAGE_DELETED: "message_deleted",
// Room Management - Client to Server
JOIN_USER_ROOM: "join_user_room",
LEAVE_USER_ROOM: "leave_user_room",
JOIN_SESSION: "join_session",
LEAVE_SESSION: "leave_session",
// Authentication Events
AUTHENTICATE: "authenticate",
AUTHENTICATION_SUCCESS: "authentication_success",
AUTHENTICATION_FAILED: "authentication_failed",
// System Events
PING: "ping",
PONG: "pong",
RECONNECT: "reconnect",
FORCE_DISCONNECT: "force_disconnect",
} as const;
export const WEBSOCKET_ROOMS = {
USER: (userId: string) => `user_${userId}`,
SESSION: (sessionId: string) => `session_${sessionId}`,
BROADCAST: "broadcast",
} as const;
export const WEBSOCKET_NAMESPACES = {
EMAIL: "/email",
NOTIFICATIONS: "/notifications",
ADMIN: "/admin",
} as const;
// Type definitions for better TypeScript support
export type WebSocketEvent = (typeof WEBSOCKET_EVENTS)[keyof typeof WEBSOCKET_EVENTS];
export type WebSocketRoom = string;
export type WebSocketNamespace = (typeof WEBSOCKET_NAMESPACES)[keyof typeof WEBSOCKET_NAMESPACES];