2016-08-11 7 views
0

Мне было интересно, как правильно создать чат/коммуникационное программное обеспечение в Java для Android?Java Android - правильный способ создать чат/общение?

Я предполагаю, что это сокет (TCP/UDP).

Если я делаю это по-своему, например, используя веб-вызовы для PHP с бэкэнд-сценариями, почему это не подходит для создания чата? В чем разница между ними? Использование вызовов вместо сырых сокетов? Использует ли он больше батареи или что-то еще? Я просто чувствую, что иногда проще разбирать JSON для сообщений и отправлять данные через веб-вызовы, но я считаю, что это не правильный способ сделать это, и у приложения могут быть такие важные проблемы, как разряд батареи или что-то, что будет чтобы проект был прекращен.

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

+1

Существует много способов. Например, Firebase. https://github.com/firebase/AndroidChat. Розетки очень низкоуровневые. –

+0

Использование php-бэкэнд и JSON для перемещения сообщений вокруг вполне приемлемо. Выбор батареи и другие проблемы не будут затронуты измеримым способом по этому выбору. – alzee

+0

Благодарим вас за информацию. Я сначала думал о том, чтобы создать БОЛЬШОЙ (основной) чат только с некоторым списком друзей. Мне еще многое предстоит узнать. Как лучший способ получить легкий импульс для Android, что он не будет использовать много трафика, чтобы быть известным о новом сообщении, которое приходит. –

ответ

0

Протокол может быть гнездом или другими, такими, как XMPP

Если вы предпочитаете использовать гнездо, SmartFox может быть одна из библиотек, которые вы можете положиться. Smartfox предлагает SDK для нескольких языков, таких как C#, Java и т.д.

Однако обратите внимание, что если вы используете гнездо для связи, как правило, JSON является НЕ используется, так как в большинстве случаев, двоичные объекты используются в на основе сокетов, например, SmartFox использует ISFSObject, который переносит все данные в двоичный объект.

Ниже приведены сообщения, которые могут быть полезны для вас, но не написаны в java, но, по сути, рабочие процессы в точности совпадают.

Помимо гнезда и XMPP appraoches, вы можете также выбрать для использования WebRTC, где нет такого рода серверов и пэром используется одноранговая связь. Хороший учебник можно найти here.

enter image description here

+0

Спасибо за ваш ответ. Я иногда создавал чат сокета на C#, но обычно я придерживался той же проблемы, что вывод сервера не печатал отправленное сообщение правильно. Я попытался прочитать сообщение из индекса 0, но он все еще показывает мне что-то подобное «■■■ Пользователь: Привет» квадраты исходят откуда-то, и я не понимаю, почему.Возможно, проблема заключается в том, что я не определяю размер пакета правильно, но когда я начинаю больше узнавать о сокетах и ​​пакетах, я, вероятно, прихожу сюда, и я опубликую свой источник, что кто-то может разобраться в том, что я сделал неправильно. PS. Я пытался использовать сырые пакеты + ASCII –

+0

Вам не нужно изобретать колеса, используя raw socket в C#. Использование smartfox и других готовых приложений является более экономичным и экономит массу времени при отладке, тестировании и развертывании. – David

+0

Я, вероятно, проверю его в следующий раз, когда включу свой компьютер! :) –

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

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