Skip to main content

Socket Setup

WebSocket Integration

Overview

This section explains how to integrate with Atenxion's post-login WebSocket endpoints using Socket.IO.

Setup For JavaScript

1. Install Required Packages

npm install axios socket.io-client

2. Socket.IO Client Setup

import { io } from 'socket.io-client';

const socket = io('https://api-qa.brillar.ai', {
transports: ['websocket'],
});

3. Authentication

All WebSocket events require an authorization token in the data payload:

{
authorizationToken: token
}

Socket Events Implementation

1. User Login

// Emit login event
socket.emit('user-login', {
userId,
agentId,
authorizationToken: token,
});

// Listen for success response
socket.on('user-login-success', ({ sessionId, userId, agentId }) => {
console.log('Login success:', sessionId);
});

// Listen for failure response
socket.on('user-login-fail', ({ sessionId, userId, agentId, error }) => {
console.error('Login failed:', error);
});

2. Create Transaction

// Emit transaction event
socket.emit('new-transaction', {
userId,
agentId,
transaction,
authorizationToken: token,
});

// Listen for success response
socket.on('new-transaction-success', ({ sessionId, userId, agentId }) => {
console.log('Transaction success');
});

// Listen for failure response
socket.on('new-transaction-fail', ({ sessionId, userId, agentId, error }) => {
console.error('Transaction failed:', error);
});

3. User Logout

// Emit logout event
socket.emit('user-logout', {
userId,
agentId,
authorizationToken: token,
});

// Listen for success response
socket.on('user-logout-success', ({ sessionId, userId, agentId }) => {
console.log('Logout success');
});

// Listen for failure response
socket.on('user-logout-fail', ({ sessionId, userId, agentId, error }) => {
console.error('Logout failed:', error);
});

Setup For Python

1. Install Required Packages

pip install requests python-socketio

2. Socket.IO Client Setup

import socketio

sio = socketio.Client()

@sio.event
def connect():
print("Connected to socket server.")

@sio.event
def disconnect():
print("Disconnected from socket server.")

sio.connect("https://api-qa.brillar.ai", transports=["websocket"])

Socket Events Implementation

1. User Login

@sio.on("user-login-success")
def on_login_success(data):
print("Login success:", data)

@sio.on("user-login-fail")
def on_login_fail(data):
print("Login failed:", data)

sio.emit("user-login", {
"userId": user_id,
"agentId": agent_id,
"authorizationToken": token
})

2. Create Transaction

@sio.on("new-transaction-success")
def on_tx_success(data):
print("Transaction success:", data)

@sio.on("new-transaction-fail")
def on_tx_fail(data):
print("Transaction failed:", data)

sio.emit("new-transaction", {
"userId": user_id,
"agentId": agent_id,
"transaction": {
"amount": 100,
"description": "Top-up"
},
"authorizationToken": token
})

3. User Logout

@sio.on("user-logout-success")
def on_logout_success(data):
print("Logout success:", data)

@sio.on("user-logout-fail")
def on_logout_fail(data):
print("Logout failed:", data)

sio.emit("user-logout", {
"userId": user_id,
"agentId": agent_id,
"authorizationToken": token
})

Summary of Socket Events

Event (Emit)Required FieldsSuccess EventFailure Event
user-loginuserId, agentId, authorization Tokenuser-login-successuser-login-fail
new-transactionuserId, agentId, transaction, authorization Tokennew-transaction-successnew-transaction-fail
user-logoutuserId, agentId, authorizationTokenuser-logout-successuser-logout-fail