Доступ к необработанному запросу веб-сервера Apache - PullRequest
3 голосов
/ 26 апреля 2011

Я собираюсь разработать приложение для отслеживания веб-GPS. gps передает данные, используя TCP (без заголовков HTTP) через порт 7070 (который я намеревался изменить на 80). Я знаю протокол для связи между GPS-трекером и клиентом, однако я застрял, так как не могу перехватить пакет данных на веб-сервере. Поскольку приложение находится в стадии разработки, и я являюсь любителем, я не могу позволить себе выделенный сервер веб-хостинга и, таким образом, получить доступ к интерфейсу php-cli для программирования сокетов.

Есть ли способ, которым я могу обойти необходимость в php-cli и перехватить необработанный пакет tcp.

Спасибо

1 Ответ

3 голосов
/ 26 апреля 2011

Просто выделите специальный сценарий PHP, прослушивающий порт 7070, который можно выполнить с помощью fsockopen().Вы не хотите, чтобы ваш GPS отправлял напрямую на порт 80, когда Apache уже прослушивает порт 80. Apache увидит входящий набор данных, отличный от HTTP, и полностью проигнорирует запрос.

$handle = fsockopen('localhost', 7070, $errno, $errstr);
if (!$handle) {
   die("Couldn't bind to socket (err $errno): $errstr");
}

while($data = fgets($handle)) {
    ... process gps data ...
}

будет самой простой базовой формой этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...