2013-08-17 16 views
0

我正在嘗試使用WebSockets編寫IRC客戶端。我在GitHub上找到的IRC客戶端使用EventMachine,但我也嘗試使用WebSocket來在任何連接的客戶端連接時通知它們。但是,我不認爲我對EventMachine有所瞭解,因爲雖然客戶端成功連接並加入了IRC頻道,但puts 'Connected...'和後續行都得到執行。與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

相關問題