Мобильные сервисы для передачи мгновенных сообщений использует протокол websocket.
Передача уведомлений осуществляется при помощи «пакетной» передачи данных — механизм аналогичный синхронизации.
NML175.........0{"stringSize":29,"binarySize":0,"attachments":[],"bufferBlockToLength":207,"bufferBlockFromLength":0,"transaction":false,"dataInfo":"mail","version":"v2","id":"1599022001522"}[{"name":"to0","length":207}]{"action":"cd_notifications","method":"Add","data":[[{"fn_user_to":null,"fn_user_from":null,"c_message":"Hello","c_title":"Уведомление","d_date":"2020-09-02T04:46:39.785Z"}]],"tid":0,"type":"rpc"}
Выше показан пример пакета для отправки уведомлений.
Создание слушателя в NodeJS
Переходим в каталог modules/socket и находим там файл main.js В этом файле выполняется регистрация нового слушателя.
Пример для регистрации трекинга передвижения:
// файл для прослушивания tracking var mailer = require('./mailer'); module.exports = function (in_req, in_res, socket) { return function (buffer) { var res = Object.assign({}, in_res); var req = Object.assign({}, in_req); req.socket = socket; mailer.to(req, res, buffer); } } // привязка к websocket ... var trackingHandler = require('./tracking-handler'); ... exports.on = function (io_obj) { ... socket.on('tracking', trackingHandler(req, res, socket)); ... }