|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
|
PILOT |
|
|||
производство Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: нет Всего: 54 |
Друзья, возможно я не туда тыкаюсь, но если PHP для меня это более менее понятно, то вот что-то другое уже непросто. Возраст )))
По делу: Есть много устройств, которые установлены в вагонах (в каждом), у всех у них есть модемы. Таких устройств будет ровно 5000 шт. (и больше не будет!) Есть сервер. Есть оператор (живой человек с высшим образованием), у которого есть список этих устройств и есть интерфейс который позволяет отображать текущее состояние каждого устройства и позволяет изменять настройки и отправлять на устройство. Устройство может в любой момент времени прислать что-то важное (например что температура в котле высокая, или авария 10-го трубопровода и т.п.) и устройство старается быть на связи, т.е. подключенным к gprs интернету. Оператор тоже может отправить команду и устройство ее получив ее выполняет и отвечает, что все выполнено. Каждое устройство имеет свой уникальный номер (IMEI для модема) и в пакете от устройства этот номер присутствует обязательно (т.е. сервер знает от кого пришел пакет и может сохранить данные в соответствующую данному устройству строку в таблице BD. Итак это все хотелки. Вопрос: можно ли так сделать силами PHP или нужно что-то другое? Если другое, то куда копать?? Пробовали сокетами, но сокеты рвут соединение, но если соединение рвется, то оператор округляет трафик за время сессии в большую сторону до 1 кб или 10 кб или 100 кб в зависимости от тарифа. Кроме того, необходимо учитывать, что устройство может проезжать "слепую" зону, т.е. там где устройтсво не может выйти на связь (нет сигнала GSM) особенно это применимо именно в РЖД, где вышки стоят у дорог, но не у железных. У оператора есть индикация кто онлайн, а кто нет. Но я это к тому, что рвать соединение не нужно. И к тому, что если оператор решил что-то изменить, то нужно это сначала сохранить в базе, а когда устройство появится онлайн, то устройство скажет, что оно онлайн и ему нужно пропихнуть конфигурационные пакеты. Тоже самое и устройством, оно может накопить данные за время пребывания без интеренет и слить несколько пакетов с данными после подключения. Устройства могут выходить на связь в любой момент. Их может быть одновременно много (не более 5000, но понятно, что все разом не нападут). Есть более элегантное решение моей проблемы, чем сокеты? Может быть есть что почитать? ли может кто-то уже делал что-то подобное? Заранее признателен. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
baldina |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
букф много, а задача не ясна. по какому протоколу работают устройства? если разработка протокола входит в задачу, то каковы возможности устройства?
ввиду упоминания про php можно предположить, что железка умеет http. или есть возможность её научить. это так? если да, то можно и на php (и не только). в целом решение очевидное и простое: сервер хранит информацию, клиенты (оператор и железки) периодически опрашивают сервер. т.е. постоянного соединения нет, работа ведется сеансами. http подходит. кстати причем тут округление трафика? |
|||
|
||||
ndbn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 17.9.2010 Репутация: нет Всего: нет |
Используйте UDP сокеты
|
|||
|
||||
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |