使用 strophe,旁遮普语的 facebook 聊天

Posted

技术标签:

【中文标题】使用 strophe,旁遮普语的 facebook 聊天【英文标题】:facebook chat using strophe, punjab 【发布时间】:2011-05-12 14:10:25 【问题描述】:

使用my previous question 和another post 的答案,我尝试从浏览器实现facebook-chat。这是我所做的:

    在 ubuntu 虚拟机上,我有 python 2.6.5python-twisted-conch 1:10.0.0-2python-twisted-名称 10.0.0-1python-twisted-web 10.0.0-1python-twisted-words 10.0.0-2 已安装。我没有安装 jabberd2 服务器,我假设 facebook 服务器在我的情况下是 Jabber/XMPP 服务器。我也没有安装 pyopenssl。 从here下载并解压旁遮普语 使用以下命令运行它
user@ubunto: sudo twistd punjab

有时它告诉进程已经在 PID xxx 下运行,但大多数时候回复是

Removing stale pidfile /home/user/twistd.pid

这是否意味着旁遮普语正在运行?

在punjab.tac文件中,根据this post我把root.putChild这一行改成

root.putChild('bosh', b)

另一方面,我在主机 (windows xp) 上运行了一个 apache 服务器来托管我使用 Strophe 的网页。在 apache 配置文件 httpd.conf 中,我将 BOSH 请求代理到 5280 端口的 punjab 使用:

<IfModule proxy_http_module>
   ProxyRequests Off 
   ProxyPass /bosh http://ubunto_ipAddress:5280/bosh
   ProxyPassReverse /bosh http://ubunto_ipAddress:5280/bosh
</IfModule>

注意主机和虚拟机是桥接的,所以两者都从路由器获取IP地址,并且可以互相ping通。我也没有安装 jabber/xmpp 服务器,或者

为了测试,我使用 strophe 的基本示例作为我的网页 basic.html 和 basic.js 与 JID: FB_username@chat.facebook.com & password: FB_password。

我得到以下信息:

Strophe is connecting.
SENT: <body rid='1709425072' xmlns='http://jabber.org/protocol/httpbind' to='chat.facebook.com' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>
Strophe is disconnecting.

有什么错误或遗漏吗?请帮忙,因为除了一些关于这个问题的帖子之外,我没有找到真正的文档。谢谢 沙巴

【问题讨论】:

你的整合成功了吗,因为我被困在你所在的地方,所以如果你有任何进展,请分享 【参考方案1】:

我不确定这是否是您想要做的,但如果您试图让网页通过 JS 独立连接到 Facebook Chat,由于跨站点脚本保护,它不会工作。您只能使用 Strophe 连接到发布 Strophe 正在处理的网页的同一服务器。您必须先连接回您的服务器并将其用作中间;或使用 iframe 在您的网页中嵌入 facebook 聊天。

(作为记录,我对 Python 一无所知,但看起来你的问题出在 JS 上:))

【讨论】:

谢谢@Thomas Shields。是的,我正在尝试在我的网页中进行 FB 聊天,我不在乎它是如何完成的(使用 Strophe、Punjab、iframe,...)。使用 strophe 时,您的意思是我应该连接到哪个服务器,webserver 还是其他本地 XMPP 服务器?如果使用 iframe 更容易,您知道一些关于如何连接的指针(教程/示例)这样做? 我对 Python 也一无所知 ;) 所以总是欢迎使用更简单的方法。 @sabah 在使用 Strophe 时,您无法连接到其他网络服务器,您必须连接到发布页面的服务器。因此,您必须连接到您的服务器,而不是 Facebook 的。至于 iframe,我不知道,但我很确定 Facebook 在他们的开发文档中有一些信息。

以上是关于使用 strophe,旁遮普语的 facebook 聊天的主要内容,如果未能解决你的问题,请参考以下文章

旁遮普邦并不始终承认它正在从 strophe 获取消息

将旁遮普语设置为 Facebook 聊天的 BOSH XMPP 代理

与 Facebook 聊天连接时远程连接失败

如何将自定义消息处理程序与 Strophe 连接

XMPP Strophe.JS 应用程序安全问题

将旁遮普语文本转换为英文文本