[JDEV] How to create a new protocol?

Chris Chen ckchris at idream.net
Tue Jan 15 11:54:44 CST 2002

You can create a new <iq> query type.. The problem you're having can be 
solved by sending the message to a specific JID, not just the "standard 
JID" of the client.  This means that you need to include the resource along 
with it.  Otherwise, when you don't, the server intercepts it and actuallyg 
vies you back what may be a public XML data.  THe request will not get 
received by the client side.

So try changing your:



to="user at mycomponent.server/Server"

or whatever your call your resource.

Currently, your TO is actually a request to the server.  You need to add 
the client's username to it and then the resource at the end.


At 03:03 AM 1/15/2002, you wrote:
>I want to create my own protocol, but there is no documentation on how to
>do this.
>Client sends:
><iq type="get" from="client at server" to="mycomponent.server">
>  <query xmlns="jabber:mycomponent:party"/>
>Server returns:
><iq type="result" from="mycomponent.server" to="client at server">
>  <query xmlns="jabber:mycomponents:party">
>   <party type="hacker party">
>    <participant>
>     <name>John Carmack</name>
>    </participant>
>    <participant>
>     <name>Alan Cox</name>
>    </participant>
>   </party>
>  </query>
>But no matter what data I send back to the client, Jabber strips any
>elements (subnodes to query) that are not included in an already existing
>XML name space.
>How do I define my own name space and tell Jabber what data is valid in
>that name space.
>When I test this Jabber returns my query with TWO instances of
>the attribute xmlns="jabber:mycomponents:party" in the query element and
>none of the subnodes in the query element.
>I can return vcards, time, last and other data in already defined name
>spaces, how do I create my own?
>jdev mailing list
>jdev at jabber.org

PGP at ldap://certserver.pgp.com/

More information about the JDev mailing list