Skip to content

Realtime events ​

Connect with Socket.io to the API origin, passing the JWT:

js
const socket = io('https://api.example.com', { auth: { token } });

Emit ​

EventPayloadAck
trade:jointradeId{ ok }
trade:leavetradeId—
trade:typing{ tradeId }—

Listen ​

EventPayloadDelivered to
order:created{ id, type? }Everyone
order:removed{ id }Everyone
trade:created{ tradeId, status }Buyer and seller
trade:updated{ id, status }Trade room
trade:updated{ tradeId, status }Buyer and seller personal rooms
message:newMessageTrade room
trade:typing{ tradeId, userId }Trade room, except the sender

Two trade:updated shapes

Room events use id; personal-room events use tradeId. Handle both, or join the trade room and read id.

Example ​

js
socket.emit('trade:join', tradeId, ({ ok }) => {
  if (!ok) console.warn('Not allowed to watch this trade');
});

socket.on('trade:updated', async ({ id }) => {
  if (id === tradeId) setTrade(await api.get(`/trades/${tradeId}`));
});

socket.on('message:new', (message) => {
  if (message.tradeId === tradeId) appendMessage(message);
});

More detail: developer guide to realtime.

Nexlm is a peer-to-peer facilitator and never holds customer Naira.