XMPP/Jabber:对于自定义消息,我需要修改客户端或服务器?

XMPP/Jabber:对于自定义消息,我需要修改客户端或服务器?,xmpp,openfire,google-talk,Xmpp,Openfire,Google Talk,我正在写一个IM,我想实现一些标准中没有的功能,我想要一些自定义功能。我想知道我是否可以使用谷歌的XMPP服务(Google Talk)并制作一个自定义IM客户端,实现默认功能,以便能够与服务器对话,可能有一种方法可以在XML中添加一些自定义标记,Google的服务器将使用这些标记,并将消息发送给我的另一个客户端,该客户端可以解释此XML并显示和执行正确的操作? 或者我必须在服务器上实现这些功能?例如,Openfire支持插件,您可以使用插件扩展它,但我真的更愿意避免使用自己的服务器,而是使用G

我正在写一个IM,我想实现一些标准中没有的功能,我想要一些自定义功能。
我想知道我是否可以使用谷歌的XMPP服务(Google Talk)并制作一个自定义IM客户端,实现默认功能,以便能够与服务器对话,可能有一种方法可以在XML中添加一些自定义标记,Google的服务器将使用这些标记,并将消息发送给我的另一个客户端,该客户端可以解释此XML并显示和执行正确的操作?

或者我必须在服务器上实现这些功能?例如,Openfire支持插件,您可以使用插件扩展它,但我真的更愿意避免使用自己的服务器,而是使用Google帐户和服务器。我只是一名学生,我没有自己维护服务器的资源。


另外,我也不太明白“”的用法。从我所读到的,我知道它可以解决我的问题,但它必须在服务器上。它不在XMPP服务器中,但它也必须作为服务器工作,并与XMPP服务器连接。
我认为我不能将“”用于谷歌的XMPP服务器,或者我可以吗?

如果我正确理解您的问题,那么您只想向您的消息添加一些额外的有效负载,这些负载必须仅由接收客户端解释。因此,您只需要将XMPP服务器用作从客户端a到客户端B的路由器。这将与Google Talk服务器以及任何其他服务器结合使用。这种可扩展性是XMPP的基本特性之一

Openfire插件和组件协议用于其他用例

以下是如何添加自定义有效载荷的示例:

比如:

<message to="user@server.com">
   <mytag xmlns="mycompany.com/mynamespace"/>
</message> 



“这个扩展性是XMPP的基本特征之一”——我是否需要使用一个特定的XML标签,这样服务器就不会考虑我的消息是否被破解了,或者我可以使用XML标签作为我想要的吗?我从这个问题中理解的是,你可以在里面添加你的自定义标签,对吗?用你自己的名字空间你就可以了。比如:Alex,请在答案中加上这个。你真的可以像你的例子中那样创建新的
xmpp
urn(
urn:xmpp:mynamespace:v1
)?那么名称冲突呢?
<message to="user@server.com">
   <mytag xmlns="urn:xmpp:mynamespace:v1"/>
</message>