ツイストアプリケーションフレームワークを使用するプロキシサーバーを作成しました。その中核となるのは、DHTを使って物事を解決することです。 DHTクライアントの起動には数秒かかるので、DHTの準備が整った後にプロキシが接続を受け付けるようにしたい。私はツイストがCosipProxy
サービスを開始する前に待機しますサービスのいくつかの種類にEntangledDHT
を有効にするにはどうすればよい別のサービスを開始する前にツイスターサービスが開始されるのを待つ
# there is a class like
class EntangledDHT(object):
# connects to the dht
# create the client
dht = EntangledDHT.from_config(config)
# when it can be used this deferred fires
# i want to wait for this before creating the "real" application
dht.ready
# the proxy server, it uses the dht client
port = config.getint(section, 'port')
p = CosipProxy(host=config.get(section, 'listen'),
port=port,
dht=dht,
domain=config.get(section, 'domain'))
## for twistd
application = service.Application('cosip')
serv = internet.UDPServer(port, p)
serv.setServiceParent(service.IService(application))
?私のためにこれを行うねじれのメカニズムはありますか?または、残りのアプリケーションを作成するコールバックをdht.ready
に追加する必要がありますか?ありがとう
申し訳ありません私はしばらくのうちに返信しなかった、私はこれに取り組む時間がなかった。 'EntangledDHT'をIServiceに向けると、obhectが作成されたときではなく、' startService'の中でネットワークに接続するだけです。私が使っているライブラリ(エンタングルされている)は、このクラスのプロトコルクラスも 'twisted.internet.reactor.listenUDP(..)'を定義しているので、これを正しく実行していないと思いますか? –