一次只对一个用户(非通道)进行实时推送更新。怎么做?

时间:2013-10-02 05:56:34

标签: real-time channel pusher

我正在创建一个网络应用/网站,我的服务器会在其中向客户推送实时更新信息(使用Pusher api)。

因此,订阅CHANNEL的USERS可以在服务器将更新推送到此CHANNEL时收到更新。

但是,(由于我的应用程序的性质),应该只有一个USER一次接收实时更新。换句话说,更新实际上的目标不是特定的CHANNEL,而是特定的用户。

我目前的解决方案是: 每个CHANNEL只允许一个USER,因此针对CHANNEL的更新是针对该一个USER的。假设我有500个用户,那么我需要有500个频道。 这需要设置很多频道。这会影响性能吗?

还有更好的方法吗?

===============

应用背景

该应用程序用于接收有关灾难的报告,并指定最近的机构接管并处理该情况。每个代理商都是系统的用户(将获得用户名)。 当服务器收到报告时,最近的 - 只有一个用户(来自提交报告的位置)将从服务器收到实时通知。

1 个答案:

答案 0 :(得分:5)

目前无法向用户发送消息,除了每个用户都有一个频道。

  

我目前的解决方案是:每个CHANNEL只允许一个USER,因此针对CHANNEL的更新是针对该一个USER的。假设我有500个用户,那么我需要有500个频道。这需要设置很多频道。这会影响性能吗?

这听起来就像您现在使用的解决方案,例如频道 - 和用户 - 可以通过频道名称唯一标识:

<user_name>-notification

由于频道只是一种路由机制,因此在拥有大量频道时没有真正的开销;当然500不会有任何问题。

我假设您正在使用private channels来确保只有允许的用户才能订阅他们的频道。