Соединения сокетов быстрее чем http на Blackberry? - PullRequest
4 голосов
/ 13 ноября 2008

Я пишу приложение для Blackberry, которое изначально было реализовано в стандартном J2ME. Сетевое подключение было выполнено с использованием Connector.open("socket://...:80/...") вместо http://

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

Ответы [ 4 ]

5 голосов
/ 13 ноября 2008

Реализация http и https в Blackberry предоставляет больше возможностей для подключения к целевому серверу, чем socket, и, конечно, реализует для вас все функции протокола HTTP. Я не тестировал их, но в определенном смысле имеет смысл, что прямой TCP через socket в некоторых случаях будет быстрее, особенно если то, что прослушивает порт 80 , не HTTP сервер (без издержек протокола)

В прошлом у меня были трудности с различными поставщиками сетевых услуг, некоторым из которых требовалось deviceside=true, другим deviceside=false, и у меня не было реального способа узнать, пока не поступит первый звонок в службу поддержки этой сети.

Чаще всего я пытаюсь добиться отклика соединения, чтобы получить плавный индикатор выполнения.

Прошу прощения за мои слова, но "плавный индикатор прогресса" - это "позолота лилии" - приятно иметь и смотреть, но не критично для функции, надежности или надежности приложения. Пойдите с тем, что является более надежным и уменьшает размер кода - вероятно http в этом случае.

2 голосов
/ 13 ноября 2008

Поскольку оба работают по сети, я не думаю, что вы можете гарантировать плавный прогресс-бар. У вас может быть больше шансов на это, если вы напомните человеку, чтобы он оставался в одном месте, чтобы у вас была возможность постоянной связи;)

С сокетным соединением накладных расходов меньше, чем с HTTP. Фактически, HTTP-соединения выполняются через сокет-соединение. Вы можете воспользоваться уменьшенными издержками соединения с сокетом, чтобы выглядеть более отзывчивым, но у вас, вероятно, будет больше работы, чем с HTTP. API более низкоуровневый, поэтому кодирование более сложное.

1 голос
/ 19 ноября 2008

Разница между сокетом и HTTP-соединением в BlackBerry заключается в том, что HTTP-соединения могут прозрачно маршрутизироваться через HTTP-прокси в случае соединений BES и BIS.

0 голосов
/ 03 января 2009

Теоретически сокеты будут быстрее, но тогда вы несете ответственность за управление издержками при развертывании собственного протокола (в зависимости от сложности). Хотя сокеты более легкие, я обнаружил, что HTTP и все, что идет с ним, значительно уменьшает головную боль.

...