Installation
Include the SDK in your HTML page:
<script src="https://cdn.socket.io/4.8.3/socket.io.min.js"></script>
<script src="https://your-domain.com/gateway-sdk.js"></script>
Complete guide to using the Realtime Gateway SDK
Include the SDK in your HTML page:
<script src="https://cdn.socket.io/4.8.3/socket.io.min.js"></script>
<script src="https://your-domain.com/gateway-sdk.js"></script>
Connects to the gateway and returns a Promise.
const gateway = await Gateway.connect({
url: 'https://your-gateway.com',
app_id: 'my-app-123',
token: token,
domain: window.location.hostname
});
gateway.on('connected', () => {
console.log('Connected!');
});
await gateway.join('chat-room-1');
await gateway.leave('chat-room-1');
Listen for events broadcast from other clients. Server broadcasts to all except sender.
gateway.on('new-message', (data) => {
// Only handle messages from other users (not your own)
if (data.user_id !== currentUserId) {
console.log('New message:', data.message);
displayMessage(data);
}
});
Emit an event to a room. The server broadcasts to all other clients (excluding sender).
gateway.emit('new-message', 'chat-room-1', {
user_id: 'user-123',
message: 'Hello!'
});
💡 Best Practice for Chat:
gateway.typing('chat-room-1', { user_id: 'user-123' });
gateway.sendPrivateMessage('user-456', {
text: 'Hello!',
timestamp: Date.now()
});
gateway.ping();
gateway.disconnect();
const gateway = await Gateway.connect({
url: 'https://your-gateway.com',
app_id: 'my-app',
token: token,
domain: window.location.hostname
});
await gateway.join('chat-room-1');
// Listen for messages from OTHER users only
gateway.on('new-message', (data) => {
if (data.user_id !== currentUserId) {
displayMessage(data, false); // false = not sender (left side)
}
});
// Send message: add optimistically, then emit
function sendMessage(message) {
const timestamp = Date.now();
// Add optimistically for sender (right side, instant feedback)
displayMessage({
user_id: currentUserId,
message: message,
timestamp: timestamp
}, true); // true = is sender (right side)
// Emit - server broadcasts to all OTHER clients
gateway.emit('new-message', 'chat-room-1', {
user_id: currentUserId,
message: message,
timestamp: timestamp
});
}