2013-03-23 2 views
3

Можно ли указать идентификатор участника мероприятия, чтобы только, что участник получит событие?Pusher отправить событие присутствия конкретному члену

Если, например, я хочу отправить уведомление пользователю (с идентификатором пользователя, которое я знаю), как бы я это сделал? Я хранение члена/идентификатор пользователя аутентификации присутствия -

$pusher->presence_auth($_POST['channel_name'], $_POST['socket_id'], $user_id) , $user_data);

Я хочу, чтобы иметь возможность вызвать событие для конкретного user_id

$pusher->trigger('presence-test', 'test_event', $data, $socket_id); 

Возможно ли это?

Любые советы оценили, спасибо!

ответ

6

Вы не можете отправлять события определенным пользователям/клиентам по каналу.

Лучший способ сделать это - иметь private- channel для каждого пользователя, чтобы вы могли отправлять информацию только им. Тот факт, что они являются частными, также означает, что вы можете обеспечить только ожидаемые подписчики пользователей (см. authenticating users).

В вашем случае название канала может быть 'private-' + user_id.

Затем вы можете получить подписку на этот канал и опубликовать его на этом сервере с сервера.

+0

Означает ли это, если у меня 1000 пользователей, я создам 1000 каналов! – Harshit

+0

И я хочу отправить push-уведомления на 450 из этих 1000, мне придется перебирать их все и выполнять сетевые вызовы. Не будет увеличивать накладные расходы. – Harshit

+0

@ Гаршит, да и да, это приведет к увеличению использования сети. – leggetter