FreeMaint Chat uses a Socket.IO WebSocket connection to deliver messages, edits, deletes and typing events instantly. No page refresh needed.
Events you receive
- chat:new — a new message arrives in a conversation you're subscribed to
- chat:edited — someone edited a message
- chat:deleted — someone soft-deleted a message (replaced by a tombstone)
- chat:typing — someone in the conversation is currently typing
Polling fallback
If your WebSocket connection drops (network blip, lock screen), the frontend keeps a 30-second polling resync as a safety net. Once the WebSocket reconnects, polling becomes silent again.
Room scoping
Each conversation is its own Socket.IO room (chat:companyId:conversationId). When you open a conversation, the client subscribes; when you switch, it unsubscribes. Membership is verified server-side at subscribe time — non-members can't eavesdrop.
Related articles
Was this page helpful?