Skip to main content

Message Types

The two messaging clients use completely different wire protocols. Pick the section that matches the class you are using.

L2PSMessagingPeer protocol frames (port 3006)

Every frame on this protocol carries { type, payload, timestamp, requestId? }. The requestId correlates a server response with the client request that produced it.

Client → server

Server → client

MessageStatus (in StoredMessage.status)

delivered, queued, sent, failed, l2ps_pending, l2ps_batched, l2ps_confirmed.

ErrorCode (in error frames)

INVALID_MESSAGE, REGISTRATION_REQUIRED, INVALID_PROOF, PEER_NOT_FOUND, L2PS_NOT_FOUND, L2PS_SUBMIT_FAILED, RATE_LIMITED, INTERNAL_ERROR.

MessageType (in MessageEnvelope.type)

text, media, reaction, system, transfer.

MessagingPeer protocol (legacy, port 3005)

The legacy signaling-server client uses a flat { type, payload } envelope (Message interface). The type is one of: This protocol does not include history, message_sent, message_queued, peer_joined, peer_left, or ack — those are L2PSMessagingPeer-only.