У меня есть сервер (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