2013-10-02 4 views
4

Я создаю веб-приложение/сайт, на котором мой сервер будет в реальном времени обновлять информацию о клиентах (используя Pusher api).Обновление в режиме реального времени только одному пользователю (а не каналу) за раз. Как это сделать?

Таким образом, ПОЛЬЗОВАТЕЛИ, которые подписываются на CHANNEL, могут получать обновления, когда сервер подталкивает обновления к этому КАНАЛУ.

Однако (из-за характера моего приложения) должен быть только один ПОЛЬЗОВАТЕЛЬ, который получает обновление в режиме реального времени за раз. Другими словами, обновление фактически предназначено для не определенного КАНАЛА, а для конкретного ПОЛЬЗОВАТЕЛЯ.

Мое текущее решение: Каждый CHANNEL позволяет использовать только один ПОЛЬЗОВАТЕЛЬ, поэтому обновление, предназначенное для КАНАЛА, предназначено для этого ПОЛЬЗОВАТЕЛЯ. Предположим, у меня 500 пользователей, тогда мне нужно иметь 500 каналов. Для этого требуется настройка большого количества каналов. Это влияет на производительность?

Есть ли лучший способ?

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

App фон

Приложения о получении отчета о катастрофе и назначая ближайшее агентству взять на себя и справиться с ситуацией , Каждое агентство будет пользователем системы (будет предоставлено имя пользователя). Когда сервер получает отчет, ближайший - только один - пользователь (из места, где отправлен отчет), получит уведомление от сервера в режиме реального времени.

ответ

3

В настоящий момент нет способа отправить сообщение пользователю, кроме как иметь канал для каждого пользователя.

Мое текущее решение: каждый CHANNEL позволяет использовать только один ПОЛЬЗОВАТЕЛЬ, поэтому обновление, предназначенное для КАНАЛА, предназначено для этого ПОЛЬЗОВАТЕЛЯ. Предположим, у меня 500 пользователей, тогда мне нужно иметь 500 каналов. Это требует установки большого количества каналов. Это влияет на производительность?

Это звучит точно так же, как решение, которое вы используете прямо сейчас, например. канал - и пользователь - может быть однозначно определены по названию канала:

<user_name>-notification

Поскольку каналы являются просто механизм маршрутизации нет никакой реальной накладные расходы на наличие большого количества каналов; конечно, 500 не будет никакой проблемой вообще.

Я предполагаю, что вы используете private channels, чтобы гарантировать, что только разрешенный пользователь может подписаться на их канал.