2016-04-13 2 views
0

Существует много документации о том, как реализовать соединение http или https в android через HTTP-клиент Apache или HttpsUrlConnection, но мне было интересно, существуют ли другие протоколы/парадигмы связи, которые я мог бы рассмотрите для связи с сервером. Действительно, по моему опыту и чтению, HttpsUrlConnection довольно прост в настройке и обеспечивает хороший уровень безопасности. Но я также хотел бы рассмотреть другие факторы, такие как производительность и надежность.Android - Различные протоколы для сетевой связи

Существуют ли другие протоколы для Android, которые могут быть интересны для меня?

ответ

0
+0

является увеличение производительности, большим, хотя? Потому что из того, что я понимаю, UDP менее безопасен и менее надежный. –

+0

Это НЕПРЕДНАМЕРЕННЫЙ. Но очень быстро. Идеально подходит для игр, потому что это уменьшает отставание. Но вы должны быть готовы кодировать таким образом, вы можете пропустить случайный пакет. –

+0

Я не думаю, что UDP - лучший выбор здесь - он конкретно упоминает «производительность и надежность». Лучше использовать опытную HTTP-библиотеку. Такие, как OkHttp. – Knossos

0

Apache HTTP Client или HttpsURLConnection и надежны. Производительность HttpURLConnection намного быстрее, чем HttpClient.

Визит http://openjavafaq.blogspot.in/2009/03/httpclient-vs-httpurlconnection.html

Основываясь на следующем тест parameters- параметров испытаний: 15 нитей 10 петли Считает Среднее время принять путем подключения для завершения 150 запросов: 7,61 миллисекунды Среднего время брать HttpClient для завершения 150 запросов : 85,89 миллисекунды Даже считал, что производительность HttpURLConnection намного быстрее, она не дает хорошего контроля над управлением соединениями Http, всегда возможно использовать HttpClient в производственной среде, когда ожидается большой объем транзакций.

Для сравнения см: http://www.innovation.ch/java/HTTPClient/urlcon_vs_httpclient.html

0

есть 2 вещи, которые вы уже HTTP протокол клиента и связи.

Ну разработать систему, вы должны рассмотреть

1) коммуникационный протокол (ы)

, а затем

2) клиент/сервер программного обеспечения

будет для протокола HTTP у вас есть клиенты (один из них - один из них), а серверы, поддерживающие различные версии/варианты, сосут, как наиболее распространенный http 1.1, «новый» http 2.0, spdy, http streaming и т. д. Если вы планируете делать сообщения или события приложение, которое вы можете захотеть tr y mqtt или WebSockets. Все они могут поставляться с некоторыми протоколами безопасности сверху (фактически под), что может привести к снижению производительности. Все они также работают поверх TCP.

Кто-то ошибочно сравнивал UDP с HTTP, где более целесообразно сравнивать TCP_vs_UDP. Мы упоминали некоторые недостатки UDP, однако QUIC может справиться с ними.

Так что есть много вариантов и зависит от того, что вы хотите делать и что вы можете делать.

Возвращаясь к тому, как вы выбираете, кажется, что решить вопрос 1) может быть трудным. Итак, что вы можете сделать, это как можно лучше определить протокол (ы), который вы хотите использовать, но также выбрать «умный» клиент, который может справиться с ними, если вы передумаете, например, okhttp или netty.Вы также можете выбрать что-то вроде модульного решения, которое может подключаться и воспроизводить различные реализации, в то время как ваш код, который делает вызовы, остается неизменным (netty может это сделать и в некоторой степени), например volley или jus (по идее залпа). В этом случае вы остаетесь гибкими.

Update: есть также хорошая информация о различных протоколах в этом question

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

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