Я разрабатываю приложение для чата 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 вот так:
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 с некоторыми изменениями.