1

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を使用しています が、このメソッドはオブジェクトの一部ではありません。

ありがとうございました!

4

0 に答える 0