Apache – обработка TCP-соединений, но не HTTP-запросов

У меня есть устройство GPS, которое может отправлять данные по TCP-соединению, но у меня нет возможности изменять отправляемое сообщение, чтобы он появился на моем сервере в виде HTTP-запроса – он может отправлять только сообщение в предопределенном формате.

Итак, у меня есть следующие вопросы:

1) Возможно ли, что Apache обрабатывает TCP-соединение, которое не приходит в виде HTTP-запроса, и отправляет ли сообщение отправленное PHP-скрипт?

2) Если # 1 невозможно, как бы вы порекомендовали мне обрабатывать данные, отправляемые на мой сервер?

Я буду потенциально иметь сотни, если не тысячи, этих блоков GPS, отправляющих данные на мой сервер, поэтому мне нужен эффективный способ обработки всех подключаемых подключений (вот почему я хотел, чтобы Apache или какой-то другой достойный сервер обрабатывал TCP соединения). Я хотел бы иметь возможность обрабатывать сообщение, отправленное по соединению с PHP, поскольку это то, над чем работает остальная часть моего приложения, и мне нужно будет вставить данные, отправленные в базу данных (и PHP действительно хорош в этом Такие вещи).

В случае, если это имеет значение, модуль GPS может отправлять данные по UDP-соединению, но из того, что я прочитал, Apache не работает с соединениями UDP.

Любые предложения приветствуются.

Использование Apache не было бы практичным, так как он использует ядерную бомбу, когда хватит фейерверка. Создание PHP-сервера довольно просто на Linux с помощью xinetd.

Измените /etc/services . Предположим, что вы хотите, чтобы ваша служба работала на порту 56789. В /etc/services добавьте строку:

 gpsservice 56789/tcp 

В /etc/xinet.d/ создайте файл с именем gpsservice :

 service gpsservice { socket_type = stream protocol = tcp wait = no user = yourusername server = /path/to/your/script log_on_success = HOST PID disable = no } 

Создайте свой PHP-скрипт (chmod он будет исполняемым):

 #!/usr/bin/php <?php // do stuff ?> 

Перезагрузка xinetd service xinetd restart

Теперь у вас есть быстрый TCP-сервер, написанный на PHP.

Чтобы ответить на ваши вопросы:

1) Не без существенных изменений

2) Создайте свой собственный сервер. Это легко сделать с нескольких платформ и на нескольких языках. Мне лично нравится использовать Twisted Framework, потому что Python относительно прост в использовании, а структура очень гибкая.