2013-08-17 3 views
0

WebSocket을 사용하여 IRC 클라이언트를 작성하려고합니다. GitHub에서 찾은 IRC 클라이언트는 EventMachine을 사용하지만 연결된 모든 클라이언트에게 연결되었을 때이를 알리기 위해 WebSocket을 사용하려고합니다. 그러나 클라이언트가 성공적으로 IRC 채널을 연결하고 조인하더라도 puts 'Connected...' 또는 후속 라인이 실행되기 때문에 나는 EventMachine을 상당히 이해하고 있다고 생각하지 않습니다.EM 및 IRC와 함께 WebSockets를 사용하여 "연결 성공"메시지 보내기

나는 이것을 대신하여 EventMachine에 대한 근본적인 오해가 있다고 생각합니다.

EM.run { 

    EventMachine::WebSocket.start(:host => '0.0.0.0', :port => 8080) do |websocket| 

    websocket.onopen { 

     irc = Net::YAIL.new(
      :address => 'irc.my-example-server.net', 
      :port  => 6667, 
      :username => 'MyExample', 
      :realname => 'My Example Bot', 
      :nicknames => ['MyExample1', 'MyExample2', 'MyExample3'] 
    ) 

     irc.on_welcome proc { |event| 
     irc.join('#ExampleChannel') 
     EM.next_tick { 
      puts 'Connected...' 
      websocket.send({ :message => 'Connected' }) 
     } 
     } 

     irc.start_listening! 
    } 

    end 

}

답변

0

나는 연구의 밤 이후 내 자신의 질문에 대답 것 같아요. 본질적으로 그것은 EventMachine에 대한 나의 오해와 아무런 관련이 없습니다. 사용하려고 시도했던 IRC 클라이언트가 무한 루프 였기 때문에 다른 어떤 것도 방해 할 수 없었습니다. EventMachine 호환 IRC 클라이언트에 대한 추가 시간을 조사한 후, 나는 Ponder를 보았습니다 : https://github.com/tbuehlmann/ponder 이제 희망에 따라 계속해서 응용 프로그램을 만들 수 있습니다!

뻔뻔 플러그 : https://github.com/Wildhoney/Banter.js

+0

나는 숙고의 저자, ​​그래서 난 더 이상 유지되지 않는 프로젝트에 대해 당신에게 메모를 남겨 단지 것이다. 그러니 경계하십시오. :) – tbuehlmann