Использование Pusher.com API для клиентских событий

Я настроил учетную запись и приложение на панели API pusher.com и экспериментировал как с частными, так и с общедоступными каналами, а также с событиями клиент-> клиент — у меня не возникло проблем с этим.

В моем проекте используется PHP-фреймворк CodeIgniter (последняя версия) (+ последняя версия jQuery + последняя версия pusher), и у меня есть доступ для редактирования всего — ничто не выходит за рамки с точки зрения решений, это некоммерческий проект.

Моя цель состоит в том, чтобы клиент/сокет A отправлял событие/сообщение клиенту/сокету B в «channelX».

Я хотел бы, чтобы в «channelX» было возможно много людей/сокетов — например, у нас могло бы быть 10 клиентов, подключенных к этому каналу, но внутри него я хотел бы, чтобы 2 стороны могли напрямую общаться друг с другом (может быть через сервер или просто через pusher API).

На данный момент, и куда меня ведут мое понимание и исследование: любое событие, инициированное в моем частном канале «channelX», отправляется всем клиентам — теперь я использовал параметр «исключить сокет», чтобы убедиться, что событие не срабатывает на 'socketA' (человек, инициирующий событие) - и это работает, когда к каналу подключено только 2 клиента/сокета - но добавьте больше сторон, и это запутается.

Вопрос: должен ли канал иметь ТОЛЬКО 2 клиента/сокета, если события должны быть разделены только между двумя?

В идеале, что я хотел бы сделать: иметь один главный канал, который содержит всех пользователей, тогда каждый пользователь должен иметь возможность отправлять «пинг» или «ткнуть» одному из других пользователей — без того, чтобы все остальные клиенты получали это событие толкателя. /триггер.

У меня есть код, но мой вопрос действительно основан на теории, поэтому я не ожидаю, что из этого вопроса появятся пакеты кода, но документы на веб-сайте pusher.com как бы упускают этот момент (или, возможно, я это сделал!)

Спасибо за любой вклад


person Paul    schedule 28.12.2013    source источник


Ответы (1)


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

person leggetter    schedule 03.01.2014
comment
Спасибо, @leggetter, я пришел к аналогичному выводу, я заставлю сервер создать имя частного канала и отправить его клиенту через ajax, чтобы клиент был динамически привязан к новому частному каналу, а затем, возможно, загрузить пользователя из старого канал / развязать, чтобы предотвратить любое пересечение - person Paul; 06.01.2014