⚙️ Connection
📤 Client → Server (Emit)
EMIT
location-update
Send live location
▼
Client sends current location. Server broadcasts to all circles the user is in.
Payload
{
"latitude": 24.8607,
"longitude": 67.0011,
"battery_level": 85,
"speed": 5.2,
"activity_type": "still",
"is_moving": false
}
EMIT
join-circle
Join a circle room
▼
After joining a new circle via API, emit this to join the Socket.IO room for real-time updates.
Payload
{ "circle_id": 1 }
EMIT
leave-circle
Leave a circle room
▼
When user leaves a circle, emit this to stop receiving that circle's events.
Payload
{ "circle_id": 1 }
📥 Server → Client (Listen)
LISTEN
member-location-updated
A member's location changed
▼
Received when any circle member sends a location update (via API or Socket).
Data received
{
"user_id": 2,
"name": "Member Name",
"avatar_url": null,
"latitude": 33.6844,
"longitude": 73.0479,
"battery_level": 60,
"activity_type": "driving",
"is_moving": true,
"updated_at": "2026-03-29T16:00:00Z"
}
LISTEN
member-joined
New member joined circle
▼
When someone joins a circle using an invite code.
Data received
{
"circle_id": 1,
"circle_name": "Family",
"user_id": 3,
"name": "New Member",
"phone": "+923...",
"timestamp": "2026-03-29T16:00:00Z"
}
LISTEN
member-left
Member left the circle
▼
When a member voluntarily leaves a circle.
Data received
{
"circle_id": 1,
"circle_name": "Family",
"user_id": 3,
"name": "Member Name",
"timestamp": "..."
}
LISTEN
member-removed
Member was removed by admin
▼
When circle owner removes a member.
Data received
{
"circle_id": 1,
"circle_name": "Family",
"user_id": 3,
"removed_by": "Owner Name",
"timestamp": "..."
}
LISTEN
circle-deleted
Circle was deleted by owner
▼
When circle owner deletes the entire circle.
Data received
{
"circle_id": 1,
"circle_name": "Family",
"deleted_by": "Owner Name",
"timestamp": "..."
}
LISTEN
member-online
Member came online
▼
When a circle member opens the app and connects to Socket.IO.
Data received
{ "user_id": 2, "name": "Member", "online": true, "timestamp": "..." }
LISTEN
member-offline
Member went offline
▼
When a circle member closes the app or loses connection.
Data received
{ "user_id": 2, "name": "Member", "online": false, "timestamp": "..." }
📱 React Native Integration
CODE
React Native Example
Copy-paste ready
▼
Install
npm install socket.io-client
Usage
import { io } from 'socket.io-client';
// Live server
const socket = io('https://tracker.myappsstudio.com', {
auth: { token: 'Bearer YOUR_SANCTUM_TOKEN' },
path: '/socket-server/socket.io',
transports: ['polling'],
});
// Local dev
// const socket = io('http://127.0.0.1:3000', {
// auth: { token: 'Bearer YOUR_SANCTUM_TOKEN' },
// transports: ['websocket'],
// });
socket.on('connect', () => {
console.log('Connected!', socket.id);
});
socket.on('member-location-updated', (data) => {
console.log(`${data.name}: ${data.latitude}, ${data.longitude}`);
// Update map marker
});
socket.on('member-joined', (data) => {
console.log(`${data.name} joined ${data.circle_name}`);
});
socket.on('member-online', (data) => {
console.log(`${data.name} is online`);
});
// Send location
socket.emit('location-update', {
latitude: 24.8607,
longitude: 67.0011,
battery_level: 85,
});
// Join new circle room
socket.emit('join-circle', { circle_id: 1 });
// Cleanup
socket.disconnect();
📡 Live Event Log
Connect to Socket.IO server to see live events...