Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Распределённые приложения и сеть > C какой стороны подступиться ?


Автор: vlsaf 19.12.2007, 20:20
Не знаю, с какой стороны подойти к вопросу.

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

Клиент - это такси.
Он использует web службы для доступа к информации (заказам)


Но в некоторых случаях нужно оповещать клиента о некоторых
событиях с центральной диспетчерской. Т.е. нужно, чтобы некий сервер 
(желетельно на той же машине, где крутятся WEB службы) мог посылать 
клиенту сообщения.

На клиенте, надо как-то написать службу отлова сообщений.
А на сервере, анализ того, в инете клиент или нет.

Что можно взять за основу такой схемы?

Автор: onsql 19.12.2007, 20:48
Ну первое, что приходит в голову, клиенту назначается сервером уникальный ID, и клиент периодически опрашивает сервер на предмет наличия оповещений, посылая ему в запросе свой ID.

Автор: vlsaf 20.12.2007, 00:03
Как раз нужно уйти от схемы, в которой клиент постоянно с некоторой периодичностью, опрашивает сервер.

Сейчас как раз эта схема реализована.
Раз в 5 секунд клиентское приложение опрашивает сервер.
Точнее web службу. Но это чревато большими накладными расходами.
Особенно на стороне клиента. Да и серверу не сладко, когда все клиенты 
постоянно сканируют его.

Автор: thomas 20.12.2007, 00:09
vlsaf, 
Привет.
А не может клиент просто прослушивать сеть, так сказать.
Если сервер имеет что сказать, то он отправит сообщение в сеть. Клиент примет. Не мое -  молчу, мое - отвечу серверу. Сервер, а клиент в сети, на получи приказ.
Примерно так.

ЗЫ Приказ фюрера - закон для фрица! (с) народная мудрость.   smile 

Автор: Artemon 20.12.2007, 16:15
Цитата

vlsaf, 
Привет.
А не может клиент просто прослушивать сеть, так сказать.
Если сервер имеет что сказать, то он отправит сообщение в сеть. Клиент примет. Не мое -  молчу, мое - отвечу серверу. Сервер, а клиент в сети, на получи приказ.
Примерно так.


Конечно же так нельзя сделать, по причине того, что у клиентов постоянно меняется IP.

Но решение данной проблемы есть, и оно уже общепринято (например GPS tracker фирмы Leadtek)

Суть способа состоит в том, чтобы посылать сообщения через ICQ (или любой другой messanger).
Заводим 2 (если 1 клиент и 1 сервер) логина один для сервера будет один для клиента.
Сервер когда нужно пошлет данные клиенту, а он распарсит строку и предпримет какие-то действия,

Удачи.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)