Есть два способа создания мобильного приложения для обмена сообщениями: чат развитие особенности:
- строить собственные решения с нуля в доме
- Интеграция с мобильными решениями обмена сообщениями SDK.
Вот статья о предполагаемом пробое грубой стоимости разработки, How Much Does It Cost to Develop WhatsApp? Она приходит к минимальной первоначальной фиксированной стоимости $ 260000 для развития в течение 3-х месяцев около 6 инженеров и менеджер по продукции в таком месте, как Silicon Valley или Нью-Йорк, чтобы построить основные функции мобильного чата с нуля. Не говоря уже о стоимости запуска серверов, обслуживания, масштабируемости и расширения функций в будущем. Альтернативные затраты на расходование долларов и время на создание функций чата - это ресурсы, которые не могут выделять ваши основные функции (если вы не создаете еще один WhatsApp или Facebook Messenger).
Если ваш план состоит не в том, чтобы изобретать колесо, либо для сохранения технических ресурсов, а для привлечения экспертов для лучшего использования или просто для тестирования воды с функциями чата, то часто проще и экономичнее интегрировать стороннюю сторону или с открытым исходным кодом. Они часто предоставляют готовые к использованию настраиваемые библиотеки пользовательского интерфейса, кросс-платформенные SDK, бэкэнд-интерфейсы и интеграцию Webhooks и т. Д. Та же идея, что и использование Google Analytics, Parse/Firebase, Crashlytics, AFNetworking, API Facebook, Socket.io, Stripe, Twilio для SMS , Hyphenate.io и т. Д. Многие компании решают сначала создать собственные чат-решения, но позже осознают, что их решения не масштабируются так, как ожидалось, так как быстро растет клиентская база.
Однако, прежде чем вы начнете получать руки грязные интегрирующие функции чата ли интеграция третьей стороной или решение в доме, вы можете исследовать следующие области,
- эффективность затрат: рентабельность инвестиций в доме решения? Достичь эффекта масштаба? Построение инженерной инфраструктуры стоит очень дорого, считая начальную стоимость фиксированной разработки, эксплуатационные расходы, техническое обслуживание, особенности расширение и т.д.
- Масштабируемость: Низкая задержка, горизонтальное масштабирование, вертикальное масштабирование, масштабирование без простоев, общая производительность и т.д.
- Надежность: стабильность, надежность, время простоя, гарантия доставки сообщений, не потерянное сообщения и упаковки и т.д.
- Mobile Client Device: устройство автономной работы, использование сотовой связи данных, спорадический и медленное подключение к Интернету,
- собственности: Фирменный против многоуровневой структуры цен по сравнению с частным Licensing развертывания и хостингом
- Security: шифрование, аутентификация, конфиденциальность
- Портативностью: Поддержка разных платформ. то есть мобильных (Android, iOS), настольных (macOS, Windows) и различных веб-браузеров.
- Особенности: один-к-одному чат, групповой чат, большой объем и одновременных разговоров, войдите на несколько устройств, обмена файлами, аудио обмена файлами и воспроизведения, видео/голосовых вызовов и т.д.
- Technologies: Существует много стандартизованных технологий, таких как XMPP, MQTT, HTTP-опрос HTTP, Socket.io и т. Д. Большинство сообщений используют собственные решения по стандартным протоколам, например Facebook Messenger is based on MQTT. Многие сторонние поставщики уже предлагают отличные API и SDK-решения для облегчения головных болей разработчиков, таких как Hyphenate.io.
- Людские ресурсы: Можете ли вы найти инженеров с экспертами для выполнения всех вышеперечисленных требований? Еще одна вещь, которую следует учитывать, - это возможность включения модных чатов, большой анализ данных (особенно обслуживание клиентов), шифрование и т. Д. Проверьте, могут ли сторонние SDK, с открытым исходным кодом или ваша инженерная команда предоставить эти гибкости или макет потенциальной взлетно-посадочной полосы , Некоторые поставщики мобильных решений для обмена сообщениями, такие как Hyphenate.io, имеют богатые возможности для общения в чате и большую гибкость для расширения, готового для вас.
Наконец, ответы на ваши мысли,
- сервера Vs P2P ... по причинам регистрации моей системы потребует все коммуникации, чтобы пройти через центральный сервер. Это как другие инструменты IM работают ... особенно когда аудио/видео входит в уравнение?
Hyphenate обрабатывает связь или доставку сообщений для вас, а также устанавливает видео/голосовые вызовы.
- Перекрестная связь с другими системами.Существуют ли API для этого или все провайдеры IM работают, чтобы сохранить секретный протокол? Характер того, что я разрабатываю, означает, что интеграция может быть ограничена только, но это определенно кажется целесообразным с точки зрения бизнеса.
** Что касается безопасности связи, то есть 3 основных компонента, которые вы, возможно, захотите посмотрите на TLS/SSL для безопасности транспортного уровня, OAuth 2.0 для аутентификации и сквозного шифрования. **
Именно то, что я ищу. Можете ли вы порекомендовать какую-либо конкретную Java-библиотеку ... есть ли какая-нибудь «официальная»? –
Лучшая библиотека должна быть Smack из проекта OpenFire: http://www.igniterealtime.org/projects/smack/ – instcode