2014-12-16 6 views
-2

Я хочу разработать мобильное приложение, в котором зарегистрированный пользователь может искать среди других зарегистрированных пользователей. Пользователь A может общаться с пользователем B. Пользователь A может просматривать профиль пользователя B. После этого пользователь B должен быть проинформирован о том, что пользователь A наблюдает за ним. Итак, это своего рода чат, где сервер должен иметь возможность получать уведомления, когда пользователь просматривает/связывается с другим пользователем, и пусть последние знают об этом. Моя первая идея заключалась в использовании node.js. Но я начал много читать в XMPP-протоколе. Считаете ли вы, что XMPP-сервер будет более подходящим для такого приложения? Что я могу сказать, вы можете настроить свой xmpp-сервер, написать плагины, чтобы он мог вести себя так, как вы хотите. Это верно?Какой метод лучше всего подходит для чат-приложения

+1

XMPP может быть немного тяжелым для простого чата один-к-одному. Библиотека [Faye] (http://faye.jcoglan.com/node.html) pub/sub, вероятно, проще в использовании и поддерживает частные каналы, автоматическое повторное подключение и websockets, длительный опрос и т. Д. –

ответ

1

Это идеальный вариант использования сокета IO с использованием NodeJS. Фактически, я реализовал именно то, что вы описываете с клиентом iOS и базовым узлом в менее чем 50 строках кода. См. https://github.com/MegaBits/SIOSocket для библиотеки iOS и http://socket.io/ для SocketIO.

XMPP намного тяжелее и многословно, и вы будете тратить много времени на разбор/создание XML, когда вы можете просто общаться в JSON на всем пути. Посмотрите на мою репо здесь:

https://github.com/alhill10/chatapp3/blob/master/View%20Control%20App/ChatView.m#L34

Вы можете увидеть на методе viewDidLoad он просто открывает соединение WebSocket и прослушивает события с сервера, а затем обновляет TableView используется в качестве окна чата с любым новые входящие сообщения в режиме реального времени.

Затем посмотрите здесь https://github.com/alhill10/simplechat/blob/master/app.js для простого примера бэкэда Socket IO, который принимает и передает сообщения, а также поддерживает состояние текущих пользователей в Интернете. Вы можете тривиально добавить аутентификацию пользователя и.

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