Я хочу разработать мобильное приложение, в котором зарегистрированный пользователь может искать среди других зарегистрированных пользователей. Пользователь A может общаться с пользователем B. Пользователь A может просматривать профиль пользователя B. После этого пользователь B должен быть проинформирован о том, что пользователь A наблюдает за ним. Итак, это своего рода чат, где сервер должен иметь возможность получать уведомления, когда пользователь просматривает/связывается с другим пользователем, и пусть последние знают об этом. Моя первая идея заключалась в использовании node.js. Но я начал много читать в XMPP-протоколе. Считаете ли вы, что XMPP-сервер будет более подходящим для такого приложения? Что я могу сказать, вы можете настроить свой xmpp-сервер, написать плагины, чтобы он мог вести себя так, как вы хотите. Это верно?Какой метод лучше всего подходит для чат-приложения
ответ
Это идеальный вариант использования сокета 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, который принимает и передает сообщения, а также поддерживает состояние текущих пользователей в Интернете. Вы можете тривиально добавить аутентификацию пользователя и.
- 1. Какой ORM лучше всего подходит?
- 2. Какой код лучше всего подходит для программирования
- 3. wpf Datagrid: какой метод проверки лучше всего подходит для datagrid
- 4. Какой метод загрузки данных лучше всего подходит для работы?
- 5. Какой метод лучше всего подходит для фоновой страницы триггера coldfusion?
- 6. Какой метод профилирования лучше всего подходит для анализа поведения программы
- 7. Какой метод лучше всего подходит для массовой вставки?
- 8. Какой метод http лучше всего подходит для Android?
- 9. Использование xml для загрузки объектов. Какой подход лучше всего подходит?
- 10. Какой метод тестирования лучше всего подходит для тестирования всего приложения Django REST?
- 11. Какой ноутбук лучше всего подходит для студии Android
- 12. Какой API сопоставления лучше всего подходит для моей ситуации?
- 13. Class Design, какой из них лучше всего подходит для этого?
- 14. Какой дизайн лучше всего подходит для этого сценария?
- 15. Какой вид спорта лучше всего подходит для Rspec?
- 16. Какой контроль wpf лучше всего подходит для этого сценария меню?
- 17. Какой алгоритм шифрования лучше всего подходит для небольших строк?
- 18. Какой контейнер лучше всего подходит для управления данными XML?
- 19. Какой менеджер онлайн-проектов лучше всего подходит для php-разработки?
- 20. , какой алгоритм кластеризации лучше всего подходит для кластеризации одномерных функций?
- 21. Какой протокол лучше всего подходит для передачи файлов
- 22. Какой тип нейронной сети лучше всего подходит для оценки кредита?
- 23. Какой контроль лучше всего подходит для списка друзей?
- 24. Какой редактор лучше всего подходит для разработчиков Android?
- 25. Какой сервис AWS лучше всего подходит для статических файлов
- 26. Какой тип java.time лучше всего подходит для аудита информации?
- 27. Какой компонент лучше всего подходит для отображения текста
- 28. Какой контроль версии лучше всего подходит для одного кодера
- 29. Какой шаблон дизайна лучше всего подходит для итеративного развития?
- 30. Какой видеокод лучше всего подходит для кодирования видеороликов Pixel Art?
XMPP может быть немного тяжелым для простого чата один-к-одному. Библиотека [Faye] (http://faye.jcoglan.com/node.html) pub/sub, вероятно, проще в использовании и поддерживает частные каналы, автоматическое повторное подключение и websockets, длительный опрос и т. Д. –