Socket.IO
Центральный Пульт использует библиотеку Socket.IO v4.5.0
для реализации Comet сервера.
Socket.IO реализует двунаправленное соединение между клиентом и сервером Центрального Пульта с низкой задержкой основанное на событиях.
Несмотря на то что Socket.IO работает по протоколу WebSocket для передачи сообщений (когда это возможно), он добавляет дополнительные метаданные к каждому пакету. Клиент WebSocket не сможет подключиться к серверу Socket.IO и наоборот, клиент Socket.IO не сможет подключиться к обычному серверу WebSocket.
Подключение к серверу
Чтобы подключиться к серверу Socket.IO, используйте пакет socket.io-client
.
В этом примере клиент Socket.IO подключается к серверу Центрального Пульта, подписывается на событие Авария, и выводит информацию о каждой аварии, которая произошла в системе.
const comet = require('socket.io-client');
// Comet settings
const COMET_CONNECT_TIMEOUT = 5000;
const sessionId = "..."
const conf = {
cometHost: 'https://example.com',
cometPort: '1234',
};
// Connect to a comet server
const url = `${conf.cometHost}` + (conf.cometPort ? `:${conf.cometPort}` : '');
const cn = comet.connect(url, {
query: { forceNew: true, sessionId },
timeout: COMET_CONNECT_TIMEOUT,
});
// Subscribe to an Incidents topic
cn.emit('add-topics', 'incidents');
// Handle server response
cn.on('incidents', msg => {
console.log(msg);
});
События Центрального Пульта
Центральный Пульт использует события Socket.IO для отправки сообщений об обновлении частей системы клиентам в реальном времени.
Каждое событие соответствует внутреннему топику Kafka.
Событие | Описание | Топик Kafka |
---|---|---|
Событие, которое срабатывает при окончании групповой операции. |
SERVER_EVENT |
|
Событие, которое срабатывает, когда пользователь изменяет отображение сущности в пользовательском интерфейсе. |
— |
|
Событие, которое срабатывает при получении данных от серверного расширения. * Название события определяется серверным расширением. |
SERVER_EVENT |
|
Событие, которое срабатывает, когда клиент получает уведомление. |
CLIENT_EVENT |
|
Событие, которое срабатывает при ошибке подключения к Comet серверу. |
— |
|
Событие, которое срабатывает Fires when an incident occurs, changes or moves from active list to history. |
INCIDENT |
|
Событие, которое срабатывает, когда меняется количество активных аварий. |
INCIDENT |
|
Это событие срабатывает каждый раз когда создаётся работа при выполнении операции. |
SERVER_EVENT |
|
Событие, которое срабатывает, когда сервер получает результаты работы. |
SERVER_EVENT |
|
Подписаться на MQTT сообщения. |
SERVER_EVENT |
|
Событие, которое срабатывает, когда пользователь добавляет, изменяет или удаляет Объект или Связь. |
MODEL_EVENT |
|
Событие, которое срабатывает, когда у заданной сущности обновляются данные мониторинга. |
ENTITY_STAT |
|
Событие, которое срабатывает при изменении состояния сущности. |
ENTITY_STATE |
|
Подписаться на SNMP трапы. |
SERVER_EVENT |