2016-04-26 3 views
1

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

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

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

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

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

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

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..'); 
}); 

Итак, как я должен приступить выполнить то, что я Вы ищете?

ответ

0

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

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

Каналы:

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

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