通过XMPP进行SOAP/REST调用

3
我希望创建一个解决方案,能够使用连接到gtalk的XMPP聊天客户端,解析面向LAN(在防火墙代理后等)的SOAP Web服务和REST调用,并将其传输到另一个不同LAN上的其他聊天客户端(在其他防火墙代理后等)。
我已经缩小了范围,选择了Smack API,但作为XMPP和Smack的新手,我不知道是否可以使用Smack实现这一点?
Smack是否提供此功能?我尝试了Smack文档,但无法深入理解。
欢迎提出任何其他可能的替代方案和建议。

2
你是认真地试图通过XMPP隧道传输HTTP以避免防火墙吗? - Darrel Miller
是的,你说得对,达瑞尔,请提出你的意见。 - Ashish Sharma
请注意,REST在XMPP上没有意义(它与HTTP紧密耦合),但SOAP是完全合理的。 - Donal Fellows
2
@DonalFellows:不,REST并非与HTTP紧密耦合。请再次阅读Fielding博士的论文,它明确指出了这一点。实际上,通过仔细的协议设计,XMPP可以实现REST的所有属性。然而,这并不重要,因为OP可以在无需对协议进行本体论决策的情况下实现他实际想要的内容。 - Joe Hildebrand
2个回答

4

XEP-72开始,了解一下你应该使用的协议风格。这样做有一些好处,包括:

  • 防火墙遍历(如前所述)
  • 不必经常进行TCP连接,节省延迟时间
  • 不必为每个请求进行身份验证,而是可以对流进行身份验证
  • 不需要为每个请求单独使用一个XML解析器,这意味着处理可以更加高效

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接