2013年03月01日

【Pyro4】NameServerを設定する

Pyro4.Daemon.serveSimpleを用いてNameServerを設定する。

この記事の目的


前回の記事で書いた以下のコード


daemon=Pyro4.Daemon("192.168.142.128")
uri=daemon.register(oschecker)

これでは、以下のようなランダム文字列のURIが得られる。

uri = PYRO:obj_01286aa85ee044f78b047846a9164de4@192.168.142.128:41252


``PYRO:"と``@"の間の文字列がNameServerと呼ばれ、これはクライアントがサーバへリクエストするための識別子にあたる。

ただし上記のようなdaemon.registerを用いたデーモンの生成方法ではサーバをリクエスト待機状態にする度に、このNameServerが毎回変わってしまう。

そのためクライアント側もそれを呼び出すために識別子をサーバ側に合わせて毎回変更しないといけない。

そこでNameServerを固定する方法を示す。

Pyro4.Daemon.serveSimpleを使う


前回の記事の例を流用する。

前回の記事内のOScheck.py内に書いた


daemon=Pyro4.Daemon("192.168.142.128")
uri=daemon.register(oschecker)

この部分の代わりに以下を使う。


Pyro4.Daemon.serveSimple(
{
oschecker:"test.oschecker"
},
host="192.168.142.128",
port=55555,
ns=False
)


第一引数は、クラス名:Servername

第二引数は、サーバのホスト名
第三引数は、ポート番号
第四引数は、Falseでよい。(Trueにするとローカルで用いる名前解決??)


実際にOSchecker.pyを走らせてみると...

$ python OScheck.py
/usr/local/lib/python2.6/dist-packages/Pyro4/core.py:155: UserWarning: HMAC_KEY not set, protocol data may not be secure
warnings.warn("HMAC_KEY not set, protocol data may not be secure")
Object <__main__.OSchecker object at 0xb771890c>:
uri = PYRO:test.oschecker@192.168.142.128:55555
Pyro daemon running.


上記のようにtest.oscheckerという名前で待機をすることができた。

雑感


この方法でリクエスト待機しないと実用は難しいと思うので、最初からこっちの方法で前回の記事を書けばよかった。





この記事へのコメント

name:

mail:

HP:

comment:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。