Android PHP и мгновенные сообщения. Сокеты?

160
23 сентября 2018, 14:40

Есть задача реализовать возможность пользователям Android приложений обмениваться сообщениями друг с другом. Например как WatsApp или VK. Просто тет-а-тет общение, с отображением, что собеседник набирает сообщение. Без аудио/видео звонков. Что бы был список контактов, т.е. пользователь может общаться с одним человеком, а в фоне ему приходят сообщения от другого пользователя.

В моем распоряжении PHP сервер. Вариант через БД с обращением через интервал времени мне кажется крайне неверный. История переписки будет храниться на сервере скорее всего.

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

UPDATE: Незнаю как поступить, закрыть вопрос или дополнить его тут? В общем, я не думаю что одним сообщением получиться ответить на данный вопрос. Но я буду очень благодарен, если дадите информацию о том, что и где почитать. Алгоритм примерный реализации чата на сокетах.

Answer 1

Ваши варианты для транспорта (если нужен свой сервер):

  • WebSockets(например чтобы потом можно было и веб сделать и будет fallback через proxy) + Push - пуши нужны чтобы разбудить Android На сервере, например посмотрите обзор: https://habr.com/post/331462/ На клиенте OKHTTP https://medium.com/square-corner-blog/web-sockets-now-shipping-in-okhttp-3-5-463a9eec82d1

  • сырые сокеты - например вам поможет ReactPHP - не хуже ноды будет https://sergeyzhuk.me/2017/06/22/reactphp-chat-server/

Также вы можете все таки использовать внешний сервис например Firebase - на стороне сервера делаете проброс логики до вашего PHP сервиса. Также стоит посмотреть на https://pusher.com/

READ ALSO
Проблема с status code 500

Проблема с status code 500

Есть проект, клиенская часть запущена на localhost/8080, серверная(php) на localhostПроблема в том, что при api запросах

176
Вместо nbsp появляются знаки вопроса

Вместо nbsp появляются знаки вопроса

На сайте есть редактор и при вводе пробела он меняется на nbsp, при выводе этих данных на страницу вместо пробела появляется знак вопросаВ чем...

159
Помогите найти ошибку в коде с авторизацией

Помогите найти ошибку в коде с авторизацией

Должно быть так:Если пользователь есть в базе данных,то форма убирается,а если его нет,то выводит ошибкуУ меня же получается,что в 2-ух случаях...

214
Расчет общей цены в корзине modx Shopkeeper3

Расчет общей цены в корзине modx Shopkeeper3

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

246