WebSocket を使用して IRC クライアントを作成しようとしています。GitHub で見つけた IRC クライアントは EventMachine を使用していますが、接続されているクライアントに通知するために WebSockets も使用しようとしています。puts 'Connected...'
ただし、クライアントが IRC チャネルに正常に接続して参加しても、それ以降の行が実行されないため、EventMachine を十分に理解しているとは思いません。
これは、私に代わって 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
}