получать данные TCP / IP в приложении rails - PullRequest
4 голосов
/ 18 января 2012

У меня есть пользовательское устройство с реализованным стеком TCP / IP, которое отправляет байт каждые 5 секунд на удаленный IP.

На этом удаленном IP-адресе я создаю сайт с рельсами 3.1.3, который должен будет получать, хранить и отображать данные, отправленные пользовательским устройством.

Я думал о том, чтобы TCP Socket работал в фоновом режиме, что-то вроде this , но я понятия не имею, как интегрировать это с сайтом rails. Где его разместить, как его запустить и как распространить данные в представлениях.

Кто-нибудь знает, как мне поступить?

1 Ответ

1 голос
/ 22 февраля 2013

Чтобы решить эту проблему, я создал raketask, который запускает TCP-сервер, который будет обрабатывать сообщения.

Примечание: этот код имеет более года, поэтому я не уверен на 100%, как он себя ведет, но я думаюосновная часть такова:

@server = TCPServer.new(@host, port)

loop do
  Thread.start(@server.accept) do |tcpSocket|
    port, ip = Socket.unpack_sockaddr_in(tcpSocket.getpeername)
    begin
      loop do 
        line = tcpSocket.recv(100).strip   # Read lines from the socket
        handle_message line # method to handle messages from the socket
      end
    rescue SystemCallError
      #close the sockets logic
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...