5

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

还是我必须在服务器上实现此功能?例如,Openfire 支持插件,您可以使用插件对其进行扩展,但我更愿意避免制作自己的服务器,而是使用 Google 帐户和服务器。我只是一名学生,我没有资源自己维护服务器。

另外,我不太明白“ Jabber 组件协议”的用途。根据我的阅读,我知道它可以解决我的问题,但它必须在服务器上。它不在 XMPP 服务器中,但它也必须作为服务器工作并与 XMPP 服务器连接。
我认为我不能将“ Jabber 组件协议”与 Google 的 XMPP 服务器一起使用,或者我可以吗?

4

1 回答 1

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>
于 2013-03-26T10:48:25.397 回答