2012-04-02 10 views
1

Smackを使用してペイロード付きのアイテムをpubsubノードに公開しようとしましたが、これまで管理していませんでした。ノードを作成し、ペイロードを配信するように構成を設定しました(setDeliverPayloads = true)。私はペイロードでアイテムを送信するためにsendメソッドを使用しています。Smackを使用してPayloadを使用してアイテムをPubsubノードに公開

node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload("my book", "books:pubsub:simple", ""))); 

ただし、アイテムはペイロードなしで公開されています。構築されたIQにはペイロードもありません。私はピシャリのデバッグパネル

から見ることができるようにこれはピシャリによって構築とのpubsubサービスに送信されたものである(明確に何のペイロードがありません)

<iq id="1ha20-11" to="pubsub.127.0.0.1" type="set"> 
    <pubsub xmlns="http://jabber.org/protocol/pubsub"> 
    <publish node="autoIncrement"> 
     <item id="autoIncrement*1333380921970"/> 
    </publish> 
    </pubsub> 
</iq> 

私は、この問題を解決するために任意の助けをいただければ幸いです。もちろん、ネイティブIQメッセージを使用することはできますが、できるだけスワックAPIのPubSubManagerを使用してこれを回避するようにします。

答えて

5

上記コードは問題ありません。唯一の問題は、上記の例では空のペイロード(SimplePayload( "my book"、 "books:pubsub:simple"、 ""))があるため、アイテムのペイロードは表示されません。

ペイロードが指定されると、それは公開アイテムに含まれます。ここ

は、ペイロード

node.send(new PayloadItem(this.clientNodeName+"*" + System.currentTimeMillis(), new SimplePayload(load, "stage:pubsub:simple", "<book xmlns='pubsub:test:book'><title>Lord of the Rings</title></book>"))); 

でアイテムを公開するためのコードであり、これは

<iq id="OIqU4-12" to="pubsub.stage.127.0.0.1" type="set"> 
     <pubsub xmlns="http://jabber.org/protocol/pubsub"> 
     <publish node="autoIncrement"> 
      <item id="autoIncrement*1333438199718"> 
      <book xmlns="pubsub:test:book"> 
       <title>Lord of the Rings</title> 
      </book> 
      </item> 
    </publish> 
    </pubsub> 
</iq> 
+0

感謝の男は、あなたが人生を満喫しているJabberedサーバーに送信され、予想されるIQです。) – Gurupriyan

関連する問題