Ruby on Rails 3 не может открыть порт в рабочем режиме - PullRequest
0 голосов
/ 26 февраля 2011

У меня есть сервер (WHM, ruby ​​1.9.2, Rails 3.0.3, centOS, пассажирский), и я просто развертываю свое приложение RoR (оно работает на локальном компьютере), но в рабочем режиме я получаю странное поведение.

Я использую файл web_socket.rb из

http://gimite.net/en/

и когда я хочу запустить сервер веб-сокетов с:

Thread.start {  
 @sockets = []
      Thread.abort_on_exception = true
      server = WebSocketServer.new( :accepted_domains => "*", :port => session[:port])
      logger.debug "Server is running at port %d" % server.port   



  server.run() do |ws|


    puts("Connection accepted")
    puts("Path: #{ws.path}, Origin: #{ws.origin}")

    if ws.path == "/"
      ws.handshake()
      @sockets << ws
      while data = ws.receive()

        printf("Received: %p\n", data)

          @sockets.each {|s| s.send(data)}

        printf("Sent: %p\n", data)
      end
    else
      ws.handshake("404 Not Found")
    end
    puts("Connection closed")
  end
  }
end

Я не запускаю новую тему. При запуске без "Thread.start" я получаю эту ошибку:

Errno::EAFNOSUPPORT (Address family not supported by protocol - socket(2)):
  lib/web_socket.rb:314:in `initialize'
  lib/web_socket.rb:314:in `open'
  lib/web_socket.rb:314:in `initialize'
  app/controllers/access_controller.rb:53:in `new'
  app/controllers/access_controller.rb:53:in `socket'
  app/controllers/access_controller.rb:29:in `attempt_login'

Я пытаюсь выяснить, в чем проблема, но я застрял: |

Откуда я знаю, что порт может быть проблемой?

Потому что в web_socket.rb строка 314:

if params[:host]
        @tcp_server = TCPServer.open(params[:host], @port)
      else
        @tcp_server = TCPServer.open(@port)
      end

Ответы [ 2 ]

0 голосов
/ 12 июля 2013

Может быть, ваш сервер имеет IPV6 для localhost

пользователь 127.0.0.1 в / etc / hosts

это решило мою проблему

0 голосов
/ 05 марта 2011

Я должен использовать фоновые процессы вместо потоков

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