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
});
Другие вопросы по тегам