xmpp クライアントのテストの作成に取り組んでおり、途中でさまざまなカスタム スタンザを使用する必要があります。皆さんが私を助けてくれるかどうか疑問に思っていた 2 つの問題があります。
- 前述したように、名前が同じで名前空間が異なるいくつかのスタンザを使用します。また、このスタンザは 2 レベル以上にすることができます。以下に例を示します。
スタンザ 1
<iq type='result' to= 'chat.com' id='id1'>
<aa xmlns='http://mysite.com/profile' >
<name>My name as included in sent mails<name>
<lang>en</lang>
<mail>My mail as included in sent mails</mail>
<fbuserid>46736473231<fbuserid>
<fbaccesstoken>AAAAA84257YTRRIXTEQITXXTCMTVBTTBXU<fbaccesstoken>
<photo_url>http://pic.facebook.com/photo.jpg</photo_url>
</aa>
</iq>
そして、次のようにカスタム スタンザを作成します。
name = 'aa'
namespace = 'http://mysite.com/profile'
plugin_attrib = 'aa'
interfaces = set(('name', 'lang', 'mail', 'fbuserid', 'fbaccesstoken', 'photo_url'))
sub_interfaces = interfaces
スタンザ 2
<iq type='set' to= 'roomname@conference.chat.come' id='id1'>
<aa xmlns='http://mysite.com/muc#share'>
<item name='Falda tubo' thumbnail='http://webpage.info/falda_tn.jpg' id='itemid1' action='add' url='http://webpage.info/falda.html’>
<metadata path=' ' />
</item>
</aa>
</iq>
質問 1: 2 レベルを超えるスタンザを作成するにはどうすればよいですか?
ご覧のとおり、私のスタンザは同じ名前ですが名前空間が変更されています。情報を処理するために get_* や set_* などのメソッドを作成したため、これはいくつかの問題を引き起こしていますが、次のように実行されています。
register_stanza_plugin(Iq, stanza_profile) register_stanza_plugin(Iq, stanza_rooms) def start(self, event): self.send_presence() self.get_parameters() self.set_parameters()
これは両方のスタンザを登録しますが、最後のスタンザ (stanza_rooms) でのみアクションを実行します
質問 2: 個別に処理するにはどうすればよいですか?
パイソンに取り組んでいます。どんな助けでも大歓迎です!
よろしくお願いします、