Receive collab:join
A user joined the collab session on this chat namespace (broadcast to the other members).
collab channel. Socket.IO event name: collab:join.A user joined the collab session on this chat namespace (broadcast to the other members).
Client emits collab:join with optional { preferredAnnotationColor }. Client -> server -> all other sockets in the same /chat/{chatId} namespace. The server spreads the client payload and appends the authenticated user identity (userId, displayName, color, avatarUrl), the annotationColor assigned on collab:join and a timestamp; client supplied values for those keys are overwritten. The joining socket additionally receives collab:self-color, collab:members (if others are present) and either collab:presenter-assign (first member) or collab:presenter-state.
Payload: collab:join
Payload of the 'collab:join' socket event.
| Property | Type | Required | Description |
|---|---|---|---|
preferredAnnotationColor | string | no | Echo of the colour the client asked for, if it sent one. |
userId | string | no | Authenticated user ID (server supplied, cannot be spoofed). |
displayName | string | null | no | Display name (falls back to first + last name). |
color | string | null | no | The user's profile colour. |
avatarUrl | string | null | no | keyPath of the user's avatar thumbnail file, if any. |
annotationColor | string | no | Annotation colour assigned to this user for the collab session. |
timestamp | integer | no | Server time in milliseconds since epoch when the event was relayed. |