Может ли связь по частному каналу происходить между двумя приложениями-толкателями

#ios #ruby-on-rails #pusher

#iOS #ruby-on-rails #толкатель

Вопрос:

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

Я создал два приложения-толкателя, по одному для каждого из приложений iOS. Они оба подписываются на свои соответствующие private-{id}-channel .

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

Возможно ли достичь вышеуказанного с помощью частных каналов Pusher?

Комментарии:

1. Просто сделайте так, чтобы они оба присоединились к одному каналу

2. У @Rao есть какое-либо решение? Есть ли у вас какие-либо другие идеи о том, как это делается, любое предложение или учебное пособие будут оценены.

Ответ №1:

Один из способов добиться этого — подключить обоих пользователей к одному и тому же каналу.

Допустим, у вас есть два пользователя: user-a и user-b . Оба пользователя подписываются на общий частный канал private-chat-user-a-user-b .

 let myChannel = pusher.subscribe("private-chat-user-a-user-b")
  

Затем запуск клиентских событий на канале

 myChannel.trigger(eventName: "client-my-event", data: ["your": "data"])
  

Клиентские события — это способ отправки сообщений только между клиентами, без их ретрансляции сервером.

Раскрытие информации: я работаю в pusher.

Ответ №2:

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