2017-05-16 2 views
2

Je prévois d'utiliser nchan pour le système de notification où le client de chargement de la page s'abonnera au canal et l'éditeur publiera sur les canaux spécifiques de l'utilisateur et les notifications seront envoyées au client via SSE.Abonnez-vous à nchan pour les nouveaux messages seulement

Donc, le problème auquel je suis confronté avec cette solution est que lors de la première inscription à nchan, elle reçoit également des messages plus anciens qui ont été publiés avant de s'abonner à la chaîne. Bien que je puisse employer l'identification de message basée sur l'horodateur pour filtrer les messages plus anciens mais cela exige la synchronisation d'horloge sur le client et le serveur qui est difficile à implémenter.

Donc, s'il y a une configuration ou une solution de contournement que je peux faire pour implémenter cela, faites-le moi savoir, ça va être d'une grande aide.

Répondre

2

J'aurais dû regarder dans la documentation plus que je ne l'ai fait :).
Je juste besoin de mettre nchan_subscriber_first_message au plus nouveau pour l'emplacement de l'abonné.

nchan_redis_url "redis://localhost:6379/6"; 
    location = /sub { 
      nchan_subscriber; 
      nchan_channel_id $arg_id; 
      nchan_use_redis on; 
      nchan_subscriber_first_message newest; 
    } 

    location = /pub { 
      nchan_publisher; 
      nchan_channel_id $arg_id; 
      nchan_use_redis on; 
    } 

    location = /pubsub { 
      nchan_pubsub; 
      nchan_channel_id $arg_id; 
      nchan_channel_group test; 
      nchan_use_redis on; 
      nchan_subscriber_first_message newest; 
    }