XMPP/贾伯 : For custom messages I need to modify the client or the server?

标签 xmpp openfire google-talk

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

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

另外,我不太明白“Jabber Component Protocol ”的用途。从我读到的内容来看,我知道它可以解决我的问题,但它必须在服务器上。它不在 XMPP 服务器中,但它也必须作为服务器工作并与 XMPP 服务器连接。
我认为我不能将“Jabber Component Protocol”与 Google 的 XMPP 服务器一起使用,或者可以吗?

最佳答案

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

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

以下是如何添加自定义负载的示例:

所以类似:

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

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

关于XMPP/贾伯 : For custom messages I need to modify the client or the server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622109/

相关文章:

java - 使用 Smack 从 XMPP PubSub 节点检索最后一个项目总是只返回一个项目

iOS XMPP 在对话屏幕中收到消息

ruby - 使用 Ruby 处理 google talk 消息

python - 如何使用 Twisted Words Python 库创建一个简单的 Google Talk 客户端?

python - 尝试使用 slimxmpp 连接 FCM CCS 服务器时出错

Ajax jabber/XMPP 客户端推荐(请真实体验)!

android xabber 未授权 openfire xmpp 帐户

websocket - Openfire websocket配置

ios - 在获取聊天记录时,我没有从 Openfire 获取两个用户历史记录

android - 使用 Smack 4.1 连接到 Gtalk