将 WebSockets 与 EM 和 IRC 一起使用以发送"Connection Successful"消息



我正在尝试使用WebSockets编写IRC客户端。我在GitHub上发现的IRC客户端使用EventMachine,但我也在尝试使用WebSockets来通知任何连接的客户端何时连接。然而,我不太理解EventMachine,因为尽管客户端成功地连接并加入了IRC通道,但puts 'Connected...'和后续行都会被执行。

我认为这是因为我对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

}

经过一晚上的研究,我想我已经回答了自己的问题。从本质上讲,这与我对EventMachine的误解无关。只是我尝试使用的IRC客户端只是一个无限循环,因此没有其他东西可以中断它。在为兼容EventMachine的IRC客户机研究了几个小时后,我发现了Ponder:https://github.com/tbuehlmann/ponder所以现在希望我能继续创建我的应用程序!

无耻插头:https://github.com/Wildhoney/Banter.js

相关内容

  • 没有找到相关文章

最新更新