问题标签 [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 投票
4 回答
11525 浏览

javascript - XMPP 同一用户的多个会话问题

我已经实现了一个 chrome 扩展,它允许通过 BOSH 连接使用 XMPP 聊天与远程服务器上运行的旁遮普服务器。它是使用 javascript Strophe 库实现的。我遇到的问题是当我有同一个用户的多个会话(例如,同一台机器上的两个不同浏览器)时,我无法接收我从第一个聊天窗口发送的消息并将其登录到第二个聊天窗口。需要某种机制来实现这一点。我能以某种方式接收我发送给其他用户的消息吗?该问题也可以在 2 台或更多不同的机器上重现,因此这也需要解决。

谢谢你。

0 投票
1 回答
5123 浏览

xmpp - 使用 strophe.js 的授权请求(添加到名册)

我使用strophe.js库在浏览器中发送和接收 XMPP 消息。它工作正常,但仅适用于我已经在我的联系人列表中的用户 - 名册。

我需要将某人(我知道其地址)添加到我的名册中。如何使用 strophe.js 实现这一点?这对我来说很重要,因为 gmail 拒绝向我的名册中没有的人发送消息。我想订阅:两者,以便能够接收和发送消息。

0 投票
1 回答
2714 浏览

xmpp - strophe.js - 消息未在 chrome 上传递

我正在使用 Strophe.js 创建自定义 xmpp 聊天应用程序。浏览器和桌面客户端 (Adium) 之间的通信完美运行。我可以通过浏览器向 Adium 发送消息,从 Adium 向浏览器发送消息。在某些时候浏览器-浏览器通信仍然存在问题,因为消息已发送但未传递。看来这只是谷歌浏览器的问题。

有趣的是 <presence> 节可以很好地发送和传递。我们使用 ejabberd 作为服务器守护进程。

这是我从一个帐户发送的存在节:

以及我收到的其他内容:

还有我发送的消息节:

并且在 Chrome 上没有收到任何内容...

编辑:问题在于转义一些字符。由于安全问题,Chrome 并没有让他们逃脱。

0 投票
1 回答
2904 浏览

javascript - 如何使用 strophe 在 CDATA 中发送消息正文?

我正在生成这样的消息

生成:

但我需要这个:

strophejs东西还是我需要自己生成?甚至可以将 CDATA 发送到 XMPP 吗?

0 投票
2 回答
2142 浏览

javascript - 如果页面刷新,则重置 XMPP 连接

我正在尝试使用 javascript 与我的 ejabberd 服务器创建与 XMPP 的 strophe 连接,我能够在页面加载时建立连接,并且能够在单击断开按钮时断开连接。

现在的问题是,连接是活动的,如果用户不小心刷新了页面,那么我的 javascript 正在尝试再次连接,并且我得到了响应。(这只是因为之前的连接可能仍然存在)

过了一会儿,如果我再次刷新页面,那么连接将成功建立,所以如果页面被意外刷新,我该如何重置连接,以便用户获得无缝连接。

0 投票
2 回答
945 浏览

json - Strophe 和 JSON 消息

我无法使用 strophe 向其他 xmpp 用户发送简单的 json 消息。创建消息的命令:

var json_stringified_msg = '{"type":"ola"}';

var reply = $msg({to: this.m_user, from: this.jid_connection, type: 'chat'}).c("body").t(json_stringified_msg);

connection.send(reply.tree());

问题是在另一端,客户端在聊天中收到: {"ACTION"quot;CHANGE_MODE", "MODE"quot;KEYBOARD"}

我不能从另一边逃脱,因为它是一个封闭的客户。

如何将json消息准确发送到另一端?

谢谢你的帮助。

此致

0 投票
1 回答
637 浏览

json - XMPP、Strophe 和原始/流数据通道

我正在使用 jquery 插件与 bosh 交谈: https ://github.com/maxpowel/jQuery-XMPP-plugin

我读到我可以使用 strophe 以流模式发送数据,以节省带宽。

我需要具备的:

  1. 我在聊天计算机用户之间交换命令的一个正常渠道
  2. 几个通道发送的不是格式化的数据,而是信息量最小的,因为每条消息的时间可以在100ms之间取整

我做了一个图表以便更好地理解。

带有解释的图表以便更好地理解

如何用 Strophe 做到这一点?

第二个问题是我读到了这个 strophe 的 json 插件http://code.google.com/p/prosody-modules/wiki/mod_json_streams

你已经试过了吗?它是否稳定并且在带宽方面真的有很好的胜利?

感谢您的回答。

此致,

0 投票
2 回答
2321 浏览

node.js - node.js, XMPP Strophe.js

我目前正在考虑向我的站点添加一个实时通知系统,到目前为止,我的选择是使用 node.js 或带有 js XMPP 库(如 strophe.js)的 XMPP 服务器。现在我只需要它作为我网站上的实时通知系统,但它可能会演变为更复杂的功能,例如聊天系统。

所以我有以下问题:

  1. 这两种技术有何不同?

  2. 这两种技术中的哪一种“更适合”集成到在 LAMP 环境中运行的站点中。

谢谢,

0 投票
1 回答
474 浏览

gwt - GWT - Strophe XMPP 客户端

我的问题是如何配置 GWT-Strophe ?我已经搜索了许多 GWT XMPP 客户端并尝试使用 gwt-strophe 我已经查看了使用 GWT-Strophe 的 GWT XMPP 客户端。问题是 window.Strophe 未定义。可能有一些我必须包括的东西吗?

0 投票
1 回答
3644 浏览

javascript - XMPP 与 Strophe 的客户端之间的 IQ 交换

所以我有 2 个浏览器正在运行,它们都具有相同的页面。在此页面中,您可以使用帐户登录服务器。

连接是用 Strophe 建立的。一切都是 HTML 和 javascript。

现在我已经设法建立了一个聊天(在两个浏览器之间,每个浏览器都使用不同的用户登录)。这是完美的工作。

我现在想要实现的是从另一个用户向一个用户发送一个 IQ。两者都在状态栏中说他们正在接收智商(一个是“得到请求”,另一个是“得到结果”)

现在,我创建我的智商:

这是在一个可以通过按下按钮调用的函数中设置的。监听器的构建如下:

使用 handlePong 作为:

现在,当 client1 向 client2 发送 IQ 时,结果如下:

客户1: Received iq from client2@domain with id pingPong and type result

客户2:

现在有没有办法在 client2 的状态中显示他收到了初始请求?