2013-04-05 3 views
2

Получение порта уже используется.EventMachine - Порт используется

require 'em-websocket' 
EM.run { 
    EM::WebSocket.run(:host => "192.168.1.100", :port => 9001) do |ws| 
     # Code goes here... 
    end 
} 

Затем на том же сервере, в то же время, но разные IP-адреса:

require 'em-websocket' 

EM.run { 
    EM::WebSocket.run(:host => "192.168.1.101", :port => 9001) do |ws| 
     # Code goes here... 
    end 
} 

Тогда я получаю эту ошибку ... Порты должны связаны с отдельными IP-адресами, и, таким образом, будут доступны использовать.

/usr/local/rvm/gems/ruby-1.9.3-p194/gems/eventmachine-1.0.3/lib/eventmachine.rb:526:in 'start_tcp_server': no acceptor (port is in use or requires root privileges) (RuntimeError)

ли я что-то отсутствует?

UPDATE:

Продолжительность: netstat -tulpn | grep ruby показывает:

tcp  0  0 0.0.0.0:9001    0.0.0.0:*     LISTEN  718/ruby 

ясно показывает, что сервер обязан 0.0.0.0 И не 192.168.1.100

Как я могу получить eventmachine связываться с 192.168.1.100?

Похоже ошибка ...

ответ

5

AFAIK 0.0.0.0:9001 означает, что порт привязывается на каждый доступный IP-адрес. Так что это противоречит 192.168.1.100:9001.

+0

Да, вы правы. Это проблема. Но как я могу заставить EventMachine не связываться с '0.0.0.0'? –

+0

Выйти из текущего процесса на 0.0.0.0:9001, и я уверен, вы можете запустить EventMachine на 192.168.1.100:9001. – iltempo

+0

Вау, я был действительно глупым и на самом деле рассказывал eventmachine о том, чтобы привязываться к '0.0.0.0'. Я благодарю вас за то, что помог мне больше подумать над этой проблемой. –

Смежные вопросы