Atenxion AI PlatformLearn how our product works
Atenxion Platform

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 Fields

Success Event

Failure Event

user-login

userId, agentId, authorization Token

user-login-success

user-login-fail

new-transaction

userId, agentId, transaction, authorization Token

new-transaction-success

new-transaction-fail

user-logout

userId, agentId, authorizationToken

user-logout-success

user-logout-fail