Primus.io перехватывает данные на сервере
Я использую Primus.io с primus-emit на сервере Express 4.
Я пытаюсь найти способ подключиться к каждому отправленному / полученному сообщению, включая сердцебиение, для отслеживания моих активных пользователей, для другого модуля приложения. (Это делается с помощью отсортированного набора Redis).
поскольку spark.on('data')
ничего не дает мне, потому что все проходит через primus-emit, я думал о попытке написать свой собственный плагин Primus или промежуточное программное обеспечение для этого, но я не могу понять, как получить от packet
(в плагине), или req, res
(в коде промежуточного программного обеспечения), к spark
, Как я устанавливаю accountNumber на объекте искры, в primus.on('connection')
,
Итак, я ищу код на стороне сервера, который позволит мне перехватывать любые данные, передаваемые при активных искрах, просто для того, чтобы можно было нажать spark.accountNumber
в Redis.
PS. Может быть, я иду по этому пути неправильно, поэтому любые советы приветствуются. По сути, другая часть моей системы должна знать об активных пользователях, и я использую Redis для этого.
Спасибо!!
1 ответ
Поэтому я попросил совета по irc.freenode.net
и это совет, который я получил от хороших людей на #primus
: Нет необходимости в плагине / промежуточном программном обеспечении джаз. Самый простой способ решить эту проблему - прикрепить к внутренней 'incoming::data'
событие, вот так:
primus.on('connection', function(spark) {
spark.on('incoming::data', function(data) {
// ... update redis set with 'connected' users here
});
// ... run all other code related to the spark as per usual here
});