Как реализовать в Android приемник входящих сообщений один-к-одному, используя SSE rest api - PullRequest
0 голосов
/ 03 октября 2019

Я разрабатываю приложение для чата Android, используя https://github.com/igniterealtime/Openfire-Chat. Вот то, чего я уже достиг:

  • создать базовую аутентификацию, войти в систему с использованием имени пользователя и пароля и получить доступ к остальным API «/ login»
  • после входа в систему я получил streamid
  • затем я отображаю историю чата с другим пользователем с API-интерфейсом «GET / chat / messages? to = x»
  • Я могу отправить сообщение пользователю x с API-интерфейсом «POST / chat / {streamid} / messages /»x @ domain ”

Теперь я хочу получать сообщение, когда« пользователь x »отправляет сообщение в это приложение для чата Android. Я прочитал это может быть достигнуто. некоторую информацию, которую я нашел на , как использовать openfire-chat :

Асинхронные push-события с сервера для обработки чата, групповых аудио, видео и телефонных разговоров можно получать как события SSEили в виде сообщений JSON по соединению SIP, если подключаемый модуль openfire ofswitch включен (1) и у пользователя открыто соединение через веб-сокет SIP (2). См. Плагин ofswitch для более подробной информации (3).

Другая информация на этой же странице, на , содержит информацию о том, как отправлять и получать сообщения один на один :

Чтобы получить сообщение чата «один к одному», убедитесь, что у вас есть веб-клиент, созданный SSE-соединением (4), и обработчик, закодированный для обработки ожидаемых сообщений JSON (5). См. https://your_server:7443/apps/sse/index.html (6) для примера того, как это сделать.

Я уже проверил на встроенном swagger api rest, есть ссылка api rest для обработки sse, чтоэто «ПОЛУЧИТЬ / событие / источник»

, но после того, как я нажал кнопку «Попробуйте!», я получил код ответа: 404 вот так:

enter image description here

URL-адрес запроса: http://192.168.0.12:7070/rest/api/event/source, где 192.168.0.12 - мой localhost ipv4.

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

Мои вопросы:

a. Я уже установил выключатель из https://github.com/Traderlynk/Etherlynk-Server, чтобы удовлетворить пункт (1), но я не знаю, как проверить, включен он или нет?.

b. Я действительно не нахожу никакой документации или информации о точке (2). как я могу открыть соединение SIP websocket для пользователя?

c. Где я могу найти подробную информацию о плагине ofswitch (3)?

d. Как создать SSE соединение на (Android) клиенте (4)?

e. Как кодировать обработчик для обработки входящего сообщения (5) или входящего прослушивателя в Android?

f. Когда я открываю https://localhost:7443/apps/sse/index.html, я вижу: HTTP ERROR 503. Я предполагаю, что мне нужно установить плагин или настроить что-то для его работы. Где я могу найти детали для (6)?

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

Я уже делаю аналогичный пост на форуме дискурса igniterealtime с некоторыми изменениями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...