| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Распределённые приложения и сеть > 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, Привет. А не может клиент просто прослушивать сеть, так сказать. Если сервер имеет что сказать, то он отправит сообщение в сеть. Клиент примет. Не мое - молчу, мое - отвечу серверу. Сервер, а клиент в сети, на получи приказ. Примерно так. ЗЫ Приказ фюрера - закон для фрица! (с) народная мудрость. |
| Автор: Artemon 20.12.2007, 16:15 | ||
Конечно же так нельзя сделать, по причине того, что у клиентов постоянно меняется IP. Но решение данной проблемы есть, и оно уже общепринято (например GPS tracker фирмы Leadtek) Суть способа состоит в том, чтобы посылать сообщения через ICQ (или любой другой messanger). Заводим 2 (если 1 клиент и 1 сервер) логина один для сервера будет один для клиента. Сервер когда нужно пошлет данные клиенту, а он распарсит строку и предпримет какие-то действия, Удачи. |