2015-07-05 1 views
-1

Может ли кто-нибудь рассказать мне, как сообщения whatsapp принимаются на моем мобильном телефоне? Например, мой телефон запрашивает whatsapp каждую секунду, или сервер посылает мой телефон на ping, когда сообщение для меня получено на сервере. Я не хочу знать точную процедуру, но обзор выполнит эту работу.Как принимаются сообщения от WhatsApp или любой другой службы обмена сообщениями?

+0

У вас есть [аналогичный вопрос] (http://stackoverflow.com/questions/19640703/what-is-the-technology-behind-wechat-whatsapp-and-other-messenger-apps), пожалуйста, проверьте его, это должно быть полезно. –

+0

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

ответ

0

В принципе, при наличии сообщения сервер отправляет уведомление Клиенту через Push-службу. Перед тем, как Клиент должен зарегистрироваться для использования Сервиса с Сервером, Сервер предоставит идентификатор для Клиента, а затем использует его для указания того, какой Клиент получит сообщение. Подробнее в Here и Here

3

Ну, я думаю, его просто не так легко ответить в этой области, но вот как это может работать.

Для этого вам может потребоваться понимание технологии на стороне мобильной и серверной сторон. Поэтому позвольте мне попытаться объяснить это очень простым способом, который может быть реализацией.

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

2) Надежда точка 1 дает понять, что ее наоборот. Теперь вы хотели бы узнать о push-уведомлении. Push-уведомление - это то, через которое сервер может уведомлять мобильные устройства о любых новых сообщениях или информации или обновлять. Вот ссылка, которая может дать более подробную информацию о push-уведомлении для android https://parse.com/tutorials/android-push-notifications

3) Как сервер обрабатывает запрос. Это само по себе является большой темой. В основном это идет как this.I предположить, что существует два пользователя, А и B

  • Первый р А послать Сообщ г-B
  • recieves сервера этот запрос с информацией пользователя А (то есть человек, который послал msg) и пользователя B (то есть человека, которому отправляется sg)
  • Сервер выполняет некоторую обработку, чтобы узнать идентификатор пользователя Mr B и другую информацию о Mr B, а затем делает нажатие так, чтобы пользователь B может получить это уведомление.

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

Если вы хотите иметь базовый вид технологии, я бы предложил вам посмотреть на сокеты io и node js. Heres чат Например http://socket.io/get-started/chat/

Надеется, что это помогает

2

WhatsApp использует XMPP (Extensible Messaging и Presence Protocol) для обработки системы доставки сообщений. XMPP в основном похож на HTTP, где клиент открывает сокет с сервером XMPP и держит его открытым до тех пор, пока клиент входит в систему. Это не похоже на обычный REST API, где клиент открывает сокет, отправляет/принимает данные и закрывает разъем. Сокет открывается, пока вы вошли в систему.В случае WhatsApp, что это вечность (не очень, WhatsApp воссоединяется автоматически, если соединение разрывается)

протокол XMPP был использован в различных приложениях чата, таких как Google Talk, Facebook Messenger и т.д.

Насколько фактическая технология идет , WhatsApp использует сильно настроенную версию библиотеки Smack на Android для создания своего клиента и использует настроенный сервер eJabberd для обработки трафика XMPP. У них может быть другое бэкэнд-решение для обработки данных, хотя это может быть в одной из облачных сетей хранения/вычислений (я думаю, что это герой, но не настоящая идея). На iOS и других платформах, я полагаю, они, возможно, разработали свои собственные библиотеки. Разработка собственных библиотек - это не большая работа, особенно когда у вас есть индивидуальные потребности и есть команда разработчиков. Я использовал одну из библиотек, доступных для Windows Phone, и сильно настроил их для работы на нас. Я немного улучшил библиотеку, но из-за нехватки времени я не смог отправить их в исходное репо (документация действительно сложная).

В любом случае, если вы заинтересованы в изучении технологии, вы можете прочитать «XMPP: Окончательное руководство» Ориэя и можете посетить The XMPP Standards Foundation.

 Смежные вопросы

  • Нет связанных вопросов^_^