WebSocket URL: wss://socket-crm.itemdigital.ru
Авторизация WebSocket соединения
// Подключение с токеном
const socket = io('wss://socket-crm.itemdigital.ru', {
auth: { token: 'your_bearer_token_here' }
});
| Параметр | Тип | Обязательность | Описание |
|---|---|---|---|
| auth.token | string | ❌ optional | Bearer токен |
socket.emit('subscribe', { channel: 'project:8i8oxJ16klQt6bw8GZHauAyzK049Lr' });
| Параметр | Тип | Описание |
|---|---|---|
| channel | string | project:{code}, user:{id}, staff:{id} |
// Ответ
socket.on('subscribed', (data) => {
// { channel: "...", status: "ok", allowedEvents: [...], params: {...} }
});
socket.emit('unsubscribe', { channel: 'project:8i8oxJ16klQt6bw8GZHauAyzK049Lr' });
socket.emit('my-channels');
// Ответ
socket.on('my-channels', (data) => {
// { channels: [{ channel: "...", allowedEvents: [...] }] }
});
socket.emit('getChannelsInfo');
// Ответ
socket.on('channelsInfo', (data) => {
// {
// "project:{code}": { events: ["phone:new", "phone:update", ...] },
// "user:{id}": { events: ["notification", "exit", ...] }
// }
});
// Отправка события в канал
socket.emit('phone:new', {
channel: 'project:ABC123',
data: { id: 1, phone: '+79991234567', status: 'active' }
});
| Канал | Доступные события |
|---|---|
| project:{code} | phone:new, phone:update, phone:delete, project:exit |
| user:{id} | notification, exit, backgroundUpdate, user:updated |
| staff:{id} | background:update |
socket.emit('ping');
socket.on('pong', () => console.log('pong'));