Пушер с компаниями с несколькими базами данных

Я пытаюсь понять, как лучше всего использовать Pusher в моем приложении.

  1. Мое приложение представляет собой обычный веб-сайт, на котором пользователи входят в систему
  2. Каждый пользователь подключен к компании
  3. У каждой компании своя база данных

Итак, мне нужно, чтобы мое приложение позволяло отправлять регулярные сообщения и уведомления (например, всплывающие окна) людям, которые принадлежат только к компании, на которую подписан.

Сомнения / проблемы:

  1. Если я создам канал с именем notifications и отправлю на него события, все пользователи (независимо от компании) получат его.
  2. Если я настрою какой-то токен, связанный с компанией, не будет работать, потому что некоторые уведомления / сообщения должны отправляться только ограниченным пользователям

В моем предыдущем проекте я связал токен с компанией, потому что между пользователями не было никакой активности, только "демонстрация" того, что PHP делает (в цикле) в каждой компании, что-то вроде:

PHP:

$this->pusher->trigger($company_pusher_token, 'feedback', $data);

JS:

var token   = $('#company_pusher_token').val();
var channel = pusher.subscribe(token);

channel.bind('feedback', function(data) 
{
   alert('working..');
});

Итак, как мне приступить к выполнению того, что я ищу?


person Linesofcode    schedule 26.04.2016    source источник


Ответы (1)


Похоже, вы идете в правильном направлении.

Название канала всегда будет начинаться с уникального префикса компании. Если необходимо уведомить только часть пользователей этой компании, объедините префикс с идентификатором группы.

Каналы:

  • "notifications": отправить всем компаниям, всем клиентам
  • "<company-token>-notifications": отправить всем клиентам из данной компании
  • "<company-token>-<group-id>-notifications": отправить всем клиентам из группы в данной компании

Кстати, если вы хотите убедиться, что ваши клиенты не могут подключиться к каналу другой компании, убедитесь, что токен компании нельзя угадать, или используйте префикс «private-», чтобы вы могли контролировать авторизацию при подписке на каналы.

person zimbatm    schedule 26.04.2016