Использование HTTP длинного опроса, когда доступны розетки (например, iPhone, BlackBerry)

StackOverflow https://stackoverflow.com/questions/3490873

Вопрос

В настоящее время я пишу простую кроссплатформу приложение с Node.js на сервере и клиентах Web / iPhone / BlackBerry. Требования к пропускной способности и задержкам аналогичны тому, что вы увидите в IRC «Party Game» или любой системе чата. У меня разработал веб-клиент, используя HTTP Dange Peailing (говорящий JSON в обоих способах).

Для iPhone / Blackberry я мог бы использовать встроенные библиотеки HTTP, чтобы поговорить с моей текущей реализацией, или я мог бы написать прослушиватель сокета на сервере и поговорить с ним, используя розетки. Есть ли преимущество для этого? Почему клиенты без браузера могут быть обескуражены?

Это было полезно?

Решение

Не могу говорить с iPhone, поскольку я не знаю достаточно о технических деталях сети сети, но для HTTP-запросов BlackBerry из браузера обрабатывается по-разному из запросов инициированных приложений в целом. BlackBerry в качестве решения состоит не только из стека TCP / HTTC / http / http / BlackBerry, которая включает в себя (в зависимости от того, если вы являетесь предприятием или нет) сервером BlackBerry Enterprise с помощью мобильных устройств услуг (BES / MDS) Ваша корпоративная сеть или исследование в движении размещена сервер BlackBerry Internet Services (BIS), который прокси все соединения из мобильного браузера. Эти серверы могут делать много вещей, в том числе обработку некоторых аспектов файлов cookie, аутентификации и транскодирования контента, чтобы сделать контент более расходным путем мобильного устройства (изображения и тому подобное). Для BES / MDS они могут даже действовать как безопасная конечная точка в подключении HTTPS.

В любом случае, это также означает, что многие функции, которые вы ожидаете от обычного TCP / HTTP-соединения, фактически происходит с устройства, и поэтому может управляться носителем или предпринимателем или ободом. Розетки с голыми костями различны, потому что различные серверы в середине не могут создать столько предположений о разъеме TCP, поскольку они могут о том, что они могут о подключении HTTP, поэтому они не могут связаться с вашими HTTP-запросами. Многие приложения BlackBerry на самом деле в конечном итоге записывают свой собственный HTTP-клиент в верхней части слоя сокета по этой самой причине, поэтому, если вам нужно сделать что-то вроде HTTP HOTP-опрос (Comet?), Определенно напишите его поверх соединения сокета, Не встроенное HTTP-соединение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top