2010-05-05 8 views
2

Je suis un newbie de nginx, et je suis en utilisant nginx comme serveur comète par nginx_http_push_modulenginx_http_push_module et bases de données

j'ai deux questions:

1, comment puis-je enregistrer les messages qui REÇU par nginx_http_push_module en bases de données? 2, comment puis-je obtenir la liste des auditeurs d'une chaîne?

grâce ~

Répondre

1

1, comment puis-je enregistrer les messages qui REÇU par nginx_http_push_module dans les bases de données?

Vous devez vous abonner au canal qui vous intéresse côté serveur et stocker chaque message dans la base de données dès leur arrivée.

Vous pouvez utiliser cURL en PHP, par exemple, à plusieurs reprises à long sondage le canal (vous devrez définir un délai approprié et les en-têtes de mise en cache droite: If-None-Match et If-Modified-Since).

2, comment puis-je obtenir la liste des écouteurs d'un canal?

Side note: nginx http push module protoco l est mort simple, c'est pasbayeux. Un abonné/écouteur dans ce module est simplement une connexion HTTP active sur une URL d'abonné. Par exemple, si vous utilisez interval-polling au lieu d'une interrogation longue, vous ne serez compté comme abonné que pendant la (très) courte période pendant laquelle la connexion est établie.

C'est pourquoi une liste d'écouteurs d'un canal n'a pas beaucoup de sens avec ce module.

Vous pouvez toutefois obtenir le nombre d'abonnés actifs d'un canal en émettant une requête GET à l'URL de publication, mais je doute sérieusement que vous puissiez faire quoi que ce soit avec cela.

0

1 - nginx ne reçoit aucun message des clients, seulement de votre application à l'adresse URL de publication qui devrait être protégée. 2 - vous pouvez implémenter quelques astuces javascript avec body.onload et décharger pour créer une liste d'utilisateurs de chat par exemple.

Questions connexes