问题标签 [strophe]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
601 浏览

facebook - Facebook 与 Strophe 和旁遮普语

我是 xmpp 的新手。我创建了自己的 ejabberd 服务器并尝试通过它实现 facebook 聊天,但它给出的响应为“远程连接失败”。我也尝试过旁遮普语,但没有成功。谁能告诉我要在 ejabberd 或 punjab 中修改或添加的配置设置。我尝试使用“chat.facebook.com”作为主机名和 5222 作为端口,但我不确定在我的配置文件中设置这些值的位置。谁能解决这个问题?

谢谢,拉米亚

0 投票
2 回答
5748 浏览

xmpp - XMPP:如何向服务器请求用户联系人的在线状态?

我们有一个站点,我们使用 strophe.js 库和 ejabberd XMPP 服务器为其开发了一个聊天系统。我们使用由 PHP 启动的会话附件(使用内部库)。我们所做的是从 PHP 脚本中获取 RID 和 SID,然后使用 strophe 的会话附件。所述 RID 和 SID 存储在 cookie 上,并且每次更新 strophe.js 上的 RID 时都会更新 cookie 上的 RID 值。

这很好用,登录后我们会收到每个联系人的在线状态。这样做的问题是,当您转到站点上的另一个页面并使用上述 RID(我们使用 strophe 产生的增量值)和 SID 附加时,服务器将不再发送您的联系人的存在信息,而不是当您登录时。这导致我们的联系人区域即使在线,也完全不可见。只有当您(或您的联系人)退出聊天,然后再次登录时,它们才会在线显示(因为您将从 XMPP 服务器收到状态更新)。

我编写了一个解决方法,当从服务器接收到状态时,您的联系人的状态会保存在 cookie 中(所有在线联系人的 JID 都会保存在 cookie 中)。每次页面加载都会检查这个,如果设置了 cookie,它将被读取,并且 cookie 上的所有 JID 都将被标记为在线。这工作正常,但可能有一些更好的方法来解决这个问题,使用 XMPP 的默认行为。

0 投票
2 回答
3877 浏览

xmpp - XMPP 网络聊天:如何解决多个选项卡/窗口?

我们有一个站点,我们使用 strophe.js 库和 ejabberd XMPP 服务器为其开发了一个聊天系统。我们使用由 PHP 启动的会话附件(使用内部库)。我们所做的是从 PHP 脚本中获取 RID 和 SID,然后使用 strophe 的会话附件。所述 RID 和 SID 存储在 cookie 上,并且每次更新 strophe.js 上的 RID 时都会更新 cookie 上的 RID 值。(这样我们就可以在页面刷新/导航到站点上的其他位置时重用会话 ID)

我们现在计划让它在多个选项卡/窗口上工作。我观察了 Facebook 的实现,每个选项卡都有一个对某个域的长轮询请求。这个域对于每个选项卡都是不同的。例如,第一个标签是 0.86.channel.facebook.com。第二个标签是 1.86.channel.facebook.com。据我了解,这是为了解决浏览器对某个域的 2 个活动请求的限制。这个多域解决方案是如何实现的?

接下来是聊天会话本身。每个标签的聊天会话会有所不同,对吗?UI 如何与 Facebook 等每个标签同步?我的想法是,每个操作都会向用户自己的 JID 发送一条消息,其中包含与聊天相关的操作。例如,打开一个聊天窗口将发送如下消息节:

这将在聊天客户端上捕获,并且 UI 将相应调整(在这种情况下,为联系人打开聊天框)。

对此实施有何建议/意见?

谢谢!

0 投票
3 回答
1190 浏览

xmpp - strophe 在 ejabberdctl 上注册用户

我想使用 strophe 在 ejabberd 服务器上添加一个用户,而无需在命令提示符下键入 ejabberdctl register uname servename passwd 。是否可以实施?是否存在任何 XMPP 协议来注册用户?

谢谢沙蒂

0 投票
1 回答
806 浏览

xmpp - 是否可以在没有订阅请求的情况下将联系人添加到好友列表?

我使用 ejabberd、strophe 和 transports 开发了 MSN、Yahoo 和 Facebook 即时消息。每次当传统用户使用他的凭据注册自己进行传输时,他都必须授权一堆订阅请求。有没有可能避免这个过程。我想知道 meebo 如何在不询问任何订阅请求的情况下将联系人添加到各自的好友列表中。

谢谢, 萨蒂

0 投票
3 回答
2873 浏览

cookies - 如何从 ejabberd 中的 muc 重新请求房间名册和历史记录

当用户加入 ejabberd MUC 时,服务器将向用户发送完整的房间名册和聊天记录。

在我的基于 Web 的客户端中,我需要在页面重新加载时保留房间。我的问题是我在卸载页面时丢失了所有初始信息。

ATM 我正在​​通过将名册和房间历史序列化为 json 并将其存储在 cookie 中来解决这个问题。然而,这是一个非常糟糕的主意(tm),因为我可以很快超过有很多用户的房间的 4k 一般 cookie 限制。

所以问题是:如何重新请求服务器在加入时发送给用户的信息,而不实际重新加入 MUC?

名册的一种方法是发送一个命名空间为“http://jabber.org/protocol/disco#items”的查询 iq,但这是不完整的,因为它不提供存在信息或任何扩展信息(例如真实非匿名房间的jids)

0 投票
1 回答
902 浏览

xmpp - 将名称空间添加到 ejabberd 服务器

我正在使用 ejabberd-2.1.2 服务器。如何将新的名称空间添加到现有的 ejabberd 服务器。我想添加名称空间 ('http://jabber.org/protocol/rosterx') XEP-0144 名册项目交换。

谢谢,萨蒂。

0 投票
1 回答
1061 浏览

xmpp - XMPP 旁遮普 BOSH 连接管理器在使用 Strophe.js 时给出 405

配置:

  • Windows 7的
  • 蟒蛇 2.7
  • TwistedPython 10.2.0
  • GitHub 上最新的旁遮普语

我从命令行启动了旁遮普语:“python c:\python27\scripts\twisted.py -y punjab.tac”

我可以从 Chrome 中很好地点击网址:http://localhost:5280。该页面给出 XEP-0124 响应。

不过,在使用 Strophe.js 时,我不断收到来自旁遮普邦的“405 方法不允许”响应。我相当肯定它不是 Strophe,因为我已经能够使用公共旁遮普部署进行连接就好了。也许我在旁遮普配置中缺少一些东西?

欢迎任何帮助。

0 投票
2 回答
2461 浏览

xmpp - 集成 Facebook 聊天

我被要求仅使用 JavaScript将Facebook Chat集成到我的应用程序中。我不能使用 X Facebook 平台身份验证,因为它需要域 URL。所以我的选择是通过摘要 MD5 SASL机制设置XMPP聊天客户端。strophe.js

关于 BOSH 连接管理器,http: //bosh.metajack.im:5280/xmpp-httpbind 。这足够还是我应该在我的服务器中配置它?我正在使用Tomcat服务器。

0 投票
1 回答
1471 浏览

xmpp - 使用 Strophe 构建 Facebook 聊天

我正在尝试使用 strophe.js 连接到 facebook 的 xmpp 服务器。我想我需要实现一些连接管理器。有人可以给我一些示例代码来使用 strophe.js 来实现 facebook 聊天吗???

PS:有没有更简单的方法来实现只使用 javascript 的 facebook 聊天......????