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

时间:2013-03-25 18:29:21

标签: xmpp openfire google-talk

我正在写一个IM,我想实现一些不在标准中的功能,我想要一些自定义功能。
我想知道我是否可以使用Google的XMPP服务(Google Talk)并制作一个自定义IM客户端,它实现了能够与服务器通信的默认功能,可能有一种方法可以在XML服务器将使用的XML中添加一些自定义标签,并将消息发送给我的其他客户端,可以解释这个XML和显示并做正确的事情?

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

另外,我并不真正了解使用“Jabber Component Protocol”的内容。根据我的阅读,我明白它可以解决我的问题但它必须在服务器上。它不在XMPP服务器中,但它也必须作为服务器工作并与XMPP服务器连接。
我不认为我可以使用“Jabber Component Protocol”与Google的XMPP服务器,或者我可以吗?

1 个答案:

答案 0 :(得分:5)

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

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

以下是添加自定义有效负载的示例:

类似于:

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

<message to="user@server.com">
   <mytag xmlns="urn:xmpp:mynamespace:v1"/>
</message>