dnode に問題があります。node.js サーバーを作成し、Ruby からいくつかのノード関数を呼び出したいと考えています。動作しますが、接続がハングします。そのため、問題をデバッグするために node.js 関数に console.log を配置しました。関数が 3 回呼び出されていることがわかります (3 回呼び出しています)が、その後 ruby のコードがブロックされます。これを見てください:
dnode = DNode.new({}).connect(9293) do |remote, connection|
remote.publish('123312', 'room', {:foo => 'bar'})
remote.publish('123312', 'room', {:foo => 'bar'})
remote.publish('123312', 'room', {:foo => 'bar'})
end
1000.times {Benchmark::dnode}
ご覧のとおり、ベンチマークを作成しています。publish メソッドは 30000 回ではなく 3 回 (1 回の実行) だけ呼び出され、ベンチマークはちょうどハングします。別の言語の dnode を調べていましたが、この場合はremote.endを使用しています が、このメソッドはオブジェクトの一部ではありません。
ありがとうございました!