使用 strophe.js 和 punjab 将 Google Talk 集成到 Web 应用程序

Posted

技术标签:

【中文标题】使用 strophe.js 和 punjab 将 Google Talk 集成到 Web 应用程序【英文标题】:Integrating Google Talk to web app using strophe.js and punjab 【发布时间】:2011-07-21 02:22:23 【问题描述】:

我正在尝试将 Google Talk(又名 gtalk)集成到我的网络应用程序中。这将是一个紧密的集成,因此 Google Talk 回聊徽章和使用 iframe 嵌入 Google 基于 Flash 的网络客户端将无法完成这项工作。

如果网络上还没有基于 html 的客户端,我可能需要从头开始构建客户端。经过一番研究,我认为解决方案是使用 strophe.js 作为前端,使用 punjab 作为中间件与 Google Talk 服务器通信。听起来对吗?是否有任何涵盖此主题的好博文或教程?

对于前端,strophe.js 能否拉取联系人列表;以及联系人的在线状态?在深入研究之前,我试图先了解大局。现在,旁遮普语对我来说就像一个完整的黑匣子。安装并运行后,似乎无需进行太多设置。

有没有cmets?

【问题讨论】:

【参考方案1】:

首先我想确定我理解你的问题。我想我们可以从两个方面理解你的问题,这会给你两个完全不同的答案。如果您想拥有与Google Talk chatback badge 相同的功能,以便您网站的访问者可以与您的 Gtalk 帐户(JID)聊天,那么我认为您应该看看section B)

我认为来自 strophe.js 作者的这个链接解释"Which BOSH Server Do You Need"很有趣

A) 您想使用 Gtalk 与您名册中的其他用户聊天

http://web.archiveorange.com/archive/v/kjZWxPJeyGfVyAwpJnZm

引用Matthew Wild(作者prosody.im):

连接到远程服务器和 登录远程服务器。您表示要登录 进入远程服务器。

如果您只想使用 BOSH 从本地用户发送消息到 其他服务器上的远程用户,ejabberd 的 mod_bosh 很好。如果你 希望允许您的 BOSH 用户登录他们自己的其他帐户 服务器,您需要使用旁遮普语或其他连接管理器 (如果您不使用 ejabberd 进行登录,ejabberd 将毫无用处)。

希望这会有所帮助,马修。

B) 您希望访问您网站的用户与您聊天

我认为 GTalk(Google) 不喜欢您使用 Gtalk 的服务器来连接您的 BOSH,以便其他访问您网站的用户可以与您交谈。在这种情况下,我认为您应该拥有自己的 XMPP 服务器。 XMPP 的好处是它们可以与其他服务器互操作,也可以与您的 Gtalk JID 互操作。

例如,您可以使用非常漂亮的prosody.im,它也内置了 BOSH。使用 prosody.im 中的 strophe 非常简单。

专业的 XMPP

此外,我建议您阅读本书professionalxmpp 以了解如何使用 strophe.js。您可以从scribd 阅读预览。

对于前端,strophe.js 能否拉取联系人列表; 以及联系人的在线状态?我试图 在深入研究之前先了解大局。 现在,旁遮普语对我来说就像一个完整的黑匣子。看起来 安装并运行后,无需进行太多设置。

我想你可以在:

contact list => Chapter 6, Building the Roster => Requesting Rosters

【讨论】:

感谢您的信息。我的目的是让用户使用自己的 Google 帐户登录 Google Talk。然后,用户将能够通过我的网络应用程序中的 Google Talk 与他们的朋友聊天。我想设计 Web 客户端,以便它可以与我的 Web 应用程序完全集成。 我认为旁遮普语可能是我需要的。专业的 xmpp 书籍是否涵盖旁遮普语?

以上是关于使用 strophe.js 和 punjab 将 Google Talk 集成到 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

strophe.min.js 和 strophe.js 的区别?

使用 Strophe.js 名册插件和 Ejabberd 接收“订阅”状态

strophe.js,我使用 attach() 来恢复 Bosh 会话,但将“状态”附加到 CONFAIL 和 DISCONNECTED

当用户同一用户多次登录时,strophe.js 不调用断开连接

在 Angular 6 中连接到 Strophe.js

使用 Strophe.js 建立 WebSocket 连接