Технология реализации push-сервера?

Я планирую разработать решение, использующее функцию push. Будет серверное и клиентское приложение для мобильных устройств.

Мне нужно знать, как отправлять сообщения клиенту с сервера. То есть мое клиентское приложение пассивно ждет, пока с сервера не придет сообщение.

Какова технология отправки сообщений с сервера.

Клиенты в виде Android,J2me,BB,iphone и т.д.


person Sukitha Udugamasooriya    schedule 05.07.2011    source источник
comment
Это веб-приложение, приложение для iPhone, приложение для Android и т. д.?   -  person Andreas Jansson    schedule 05.07.2011
comment
Мы будем думать о разных клиентах от Android, J2me, BB, iphone и т. Д.   -  person Sukitha Udugamasooriya    schedule 05.07.2011
comment
Вероятно, стоит ознакомиться с этим Руководством по технологиям реального времени, в котором рассматриваются такие вопросы, как как Comet, WebSockets, а также предоставляет список размещенных сервисов, а также решений, которые вы можете установить самостоятельно.   -  person leggetter    schedule 05.07.2011


Ответы (2)


Google для "COMET", вы получите много ссылок. Вообще говоря, вам нужна серверная структура, которая может парковать запросы и забирать их, когда у них есть данные для возврата. Например, базовый сервлет Java будет поддерживать поток для каждого запроса, и если вы «припаркуете» запрос (выполнив некоторое ожидание), поток приостанавливается вместе с запросом. Таким образом, у вас может быть столько клиентов, ожидающих запроса, сколько у вас может быть потоков на сервере, чего недостаточно для больших приложений.

Так что, по крайней мере, вам нужна система, в которой потоки можно использовать повторно, когда запросы приостанавливаются. Поскольку push снова становится популярным, фреймворки для его поддержки расцветают, поэтому без дополнительного контекста трудно рекомендовать определенный сервер/фреймворк.

Сказав это :-), в Play Framework (http://www.playframework.org/) есть пример приложения для чата, в котором используются три варианта "push". Во всяком случае, стоит просмотреть код (при условии, что вы знаете Java), чтобы получить представление о различных решениях.

person cdegroot    schedule 05.07.2011

Взгляните на веб-сокеты HTML5. Это способ открытия сокета необработанный TCP-сокет, который работает как сокет TCP (с некоторыми ограничениями), но инициируется через HTTP из браузера, обеспечивая настоящую двустороннюю связь. Он поддерживается во многих современных браузерах, включая текущий браузер iOS. Android не поддерживает его, но там вы можете использовать пиксель Flash. Довольно просто написать Flash-файл, который управляет сокетом и передает всю информацию туда и обратно в Javascript. Если вам интересно, я думаю, что у меня даже есть код, который я мог бы выкопать для вас.

person Andreas Jansson    schedule 05.07.2011
comment
WebSockets — это не необработанные TCP-сокеты. Резервный вариант WebSocket Flash: github.com/gimite/web-socket-js - person igorw; 05.07.2011