Rails или Sinatra - Как я могу обработать неправильный HTTP-запрос? - PullRequest
2 голосов
/ 23 августа 2011

У меня есть устройство 3G + GPS (Digi WR44), которое может отправлять пакеты NMEA на любой IP-адрес.

Я хотел бы получить эти данные из приложения Rails (или Sinatra), но пакеты не отправляются как действительный HTTP-запрос, и Rails и Sinatra завершаются ошибкой.

Вот ошибка Rails: ОШИБКА плохой строки запроса

И ошибка Синатры: !! Неверный запрос

Похоже, я не могу настроить устройство для отправки действительных HTTP-запросов вместо простого содержимого. Знаете ли вы, есть ли способ обработки HTTP-запроса, состоящего из простого текста?

Я пытался с помощью скрипта PHP, пакет NMEA был интерпретирован как request_method, но я хотел бы использовать ruby ​​в этом проекте (с доступом к модели).

Большое спасибо за вашу помощь:)

PS: я использую последние версии Ruby, RoR и Sinatra

1 Ответ

2 голосов
/ 24 августа 2011

Я наконец нашел решение, которое заключается в создании сценария ruby, прослушивающего данный порт с помощью библиотеки Socket.Тривиальные, но полезные примеры доступны здесь: http://www.tutorialspoint.com/ruby/ruby_socket_programming.htm

Также легко получить доступ к activerecord внутри сценария ruby ​​без рельсов: http://blog.aizatto.com/2007/05/21/activerecord-without-rails/

...