nginx - 仅订阅 nchan 以获取新消息

标签 nginx notifications publish-subscribe

我计划将 nchan 用于通知系统,其中页面加载客户端将订阅 channel ,然后发布者将发布到用户特定的 channel ,通知将通过 SSE 发送到客户端。

所以我在这个解决方案中面临的问题是,在第一次订阅 nchan 时,它也会收到较旧的消息,这些消息是在订阅 channel 之前发布的。虽然我可以使用基于时间戳的消息 ID 来过滤掉旧消息,但这需要客户端和服务器上的时钟同步,这很难实现。

因此,如果我可以执行任何配置或解决方法来实现这一点,请告诉我,这将有很大帮助。

最佳答案

我应该比实际更多地查看文档:)。

我只需要设置 nchan_subscriber_first_message 到最新的订户位置。

    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;
    }

关于nginx - 仅订阅 nchan 以获取新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43992502/

相关文章:

postgresql - Postgres 通知不会自动到达

Android 如何拦截状态栏通知?

go - 如何通过转发到死信主题来限制 Google Pub/Sub 传送尝试?

regex - nginx 别名语法

apache - Mojolicious 用于学校项目 : shall I install Nginx, Apache 还是 Lighttpd?

java - 我们可以使用 JMX 进行警报/通知吗

redis - Servicestack.Redis Pub/Sub 与其他嵌套 Redis 命令的限制

python - 订阅者可以在 ZeroMQ 中向发布者发送数据吗

java - 从 java 使用 nginx 进行端口转发

mysql - Node.js 服务器在某些请求后不返回响应