Overview
Websockets are used for real-time, event-driven communication between clients and the MinChat server. They are useful in listening for specific events such as a new message received event.
The following is the socket URL endpoint to connect to.
import { io } from "socket.io-client"
const socket = io("https://api.minchat.io", { transports: ['websocket'] });
it is recommended to use socket.io, however, you can also use any WebSocket library.
Specify the active user to listen to events.
socket.emit('room.user.join', { channelUserId: USER_ID, apiKey: YOUR_API_KEY })
Replace YOUR_API_KEY
with your API Key found on the MinChat Dashboard, and USER_ID with the userID of the User that will make requests.
General Events
Listen for Chats
Invoked when there is a new message in any conversation.
socket?.on('chat',(chatData) => { /** do something with the chat */ })
Conversation Events
The following events require you to subscribe to listen to events for a specific chat by running the following code.
socket.emit('room.join', { channelId: CHAT_ID, apiKey: YOUR_API_KEY })
Replace YOUR_API_KEY
with your API Key found on the MinChat Dashboard, and CHAT_ID
with the id of the conversation you would like to listen to events.
Listen for new messages
Invoked when there is a new message in the subscribed chat
socket.on('message', (messageData) => { /** do something with the messageData */ })
Listen for updated messages
Invoked when a message gets updated in the subscribed chat
socket.on('message.update', (messageData) => { /** do something */ })
Listen for deleted messages
Invoked when a message gets deleted in the subscribed chat
socket.on('message.delete', (messageId) => { /** do something */ })
Listen for typing started
Invoked when a user in the conversation starts typing.
socket.on('typing.start', (userData) => { /** do something with the userData */ })
Listen for typing stopped
Invoked when a user in the conversation stops typing.
socket.on('typing.stop', (userData) => { /** do something with the userData */ })
Last updated
Was this helpful?