0

ひねって遊んでみました。適切な Factory を使用してサーバーとクライアントを作成しようとしました。これは素晴らしいフレームワークですが、送信できるのは文字列のみです:(最初にリストまたは配列オブジェクトを送信し、後でクライアント内のサーバーからオブジェクトを使用したいと思います。しかし、現在、いくつかの簡単な質問に行き詰まっています:

1) Factory モデルでは、「clientConnectionFailed」や「clientConnectionLost」などのメソッドを使用しましたが、PB を使用して同じメソッドを取得するにはどうすればよいですか? クライアント/サーバーの問題を防ぐのに非常に役立ちました。

2) "dataReceived" や "connectionLost" または "connectionMade" などのメソッドも使用しましたが、PB を使用してこのメ​​ソッドの同じ機能を取得するにはどうすればよいですか?

ご覧のとおり、ファクトリの代わりに PB モデルを使用してコードを書き直すことから始めたいと思います。私は例を見てきましたが、工場のものとは異なり、私はそれらを理解することができません.

助けてくれてありがとう=)

4

1 に答える 1

2

PBClientFactoryは であるClientFactoryため、引き続き取得clientConnectionFailedしてclientConnectionLost呼び出します。必要に応じて、サブクラス化してオーバーライドします。(PB で使用されるプロトコル クラス) のnotifyOnDisconnect両方によって実装され、PB を使用する場合のインスタンスを頻繁に使用するメソッドを使用することもできます。BrokerRemoteReference

connectionMade必要にconnectionLost応じて、プロトコルをオーバーライドすることもできます。前述したように、プロトコルはBroker. それをサブクラス化し、いくつかのメソッドをオーバーライドし、サブクラス (インスタンスではなくクラス) を のprotocol属性として設定しますPBClientFactory

ただし、オーバーライドしないでくださいBroker.dataReceived。PB は、順序付けられた、信頼性の高い、ストリーム指向のバイト トランスポートではありません。バイトのチャンクが配信されるのを待たずに、独自のバイトのチャンクで応答します。PB は、リモート オブジェクトおよびメソッド呼び出しプロトコルです。これを使用して、ネットワーク経由でメソッドを呼び出し、それらのメソッド呼び出しにオブジェクトを渡します。サーバー上のメソッドを呼び出すことができるクライアントの場合は、メソッドを定義しremote_*ます。

これについては、PB のドキュメントで詳しく説明されています。http://twistedmatrix.com/documents/current/core/howto/の「Perspective Broker」セクションを参照してください。

于 2011-04-08T13:52:52.147 に答える