问题标签 [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.
javascript - Openfire:在 Openfire 服务器中使用 SASL Anonymous 创建用户
是否可以使用 Strophe.js 使用匿名用户创建新用户(带内注册),如下例所示:http ://groups.google.com/group/strophe/browse_thread/thread/a0e15ae226b91a3a?fwc=1 。我设法仅使用现有帐户注册新用户(作为普通的“非管理员”用户)。这是一个开放式安全问题吗?我使用匿名连接:
服务器返回:
如果我与注册用户连接,它工作正常,我可以创建其他用户。允许从专用用户帐户(例如 register@server.local(没有管理员权限))进行注册会不安全吗?
cordova - 无法在 phonegap 应用程序中使用 strophe 连接到 openfire
我正在创建一个 phonegap 应用程序,它尝试使用 strophe 连接到 xmpp 服务器(在我的情况下是 openfire)......但我总是在我的回调函数中获得 Status.CONNFAIL 作为状态。可能是什么原因。我的 index.html 简单代码如下:
在警报中,我总是得到 2,这是在 Status.CONNFAIL 的情况下出现的。我在 res/xml/cordova.xml 中列出了 openfireConnectionURL
javascript - 除非我触发我的连接回调两次,否则使用 strophe attach() 而不是 connect() 不起作用
我正在使用韵律 XMPP 服务器并尝试“使用 JavaScript 和 jQuery 进行专业 XMPP 编程”中的第 3 章示例。它基本上是 ping - pong 的例子,它工作正常。问题是当我尝试修改此示例以在 cookie 中存储 jid、sid 和 rid 以使用此数据在页面重新加载时调用 strophie attach() 而不是 connect()。如果我一个接一个地执行两个或多个 ping,我的示例效果很好,如果我只执行一个服务器不返回任何内容。这是我的代码:
整个 Javascript 代码在这里
问题是当我收到两个 ping 并且 pong 处理程序被触发两次时,我$(document).trigger('connected');
在on_connect
函数中执行了两次。status === Strophe.Status.ATTACHED
当我只触发一次 ping 时,不会调用 pong 处理程序。
提前致谢。
javascript - Strophe.js 服务器即使对于当前正在积极聊天的用户也会发送不可用状态
我最近遇到了 Strophe.js 应用程序的另一个问题:即使我正在与用户 B 积极聊天(根据规范发送正确的 xml,包括 <active> 和内容),但服务器会通知用户 B 我变得不可用。
目前逻辑如下所示:
- 连接
- 发送初始存在节
- 需要时更新状态(离开/dnd)
- 每 10 秒开始 ping 服务器
- 用户现在可以聊天
执行 Ping 是为了确保服务器不会崩溃,这是众所周知且广泛使用的技术(使用 <iq...>)。
用户发送的每条消息如下所示:
你知道这个问题以及任何可能的解决方案吗?
xmpp - 通过 Strophe 附加(未连接)时是否应该向 XMPP 服务器广播状态?
XMPP 规范规定客户端应在连接到 XMPP 服务器时广播出席信息。Strophe 有两种“连接”到 XMPP 服务器的方法:连接和附加。Connect 进行完全授权,并且 attach 用于重新连接到预先存在的连接。使用附加时,客户端是否应该向服务器广播存在?
在我的测试中,如果我没有在附加时广播出席信息,客户端不会收到来自其他用户的消息(出席信息、消息或其他),并且如果客户端尝试发送任何节,他会立即被断开连接服务器。就好像服务器不知道用户在没有存在广播的情况下已连接。
这似乎是我回答了自己的问题,但是,我想知道服务器中是否存在错误,或者我做错了什么或者这是预期的行为?
php - 如何使用 XMPP 和 BOSH 实现 Facebook 聊天
我正在开发一个基于 php 的网站。我想在其中实现 Facebook 聊天。
我的问题是我如何将 XMPP 与 BOSH 一起使用。XMPP和BOSH的关系是什么。
是否有任何示例源代码可以了解如何使用 JAXL 或 strophe.js 等库来实现 Facebook 聊天
javascript - Strophe、backbonejs 和 jquery-mobile
我想用backbonejs 构建一个MVC 结构化的移动应用程序。我在网上搜索信息,我只找到了 strophe 主干插件:
我会遇到同时使用backbone.js 和Strophe 的问题吗?
apache - 将图像发布到 xmpp pubsub 节点
我正在阅读 Jack Moffit 的《Professional XMPP Programming》一书,我有一些问题是我当前问题的正确解决方案。我主要构建一个 XMPP 应用程序,其中主要将文本发布到 pubsub 节点,但也发布图像(稍后可能是文件和视频)。我看到有两个选项可以实现图像发布:
- 用户可以上传经过 base64 编码的图像并将其作为项目存储在 pubsub 节点中(这样做有一些缺点:db 作为性能瓶颈,但可能是 NoSQL db 作为选项?我可以使用哪个 xmpp 服务器来使用它像 MongoDB 这样的 NoSQL 数据库)或
我必须使用网络服务器将图像上传到,但随后
一个。我需要一个单独的 Web 应用程序作为外部 Web 应用程序附加到吗?湾。xmpp 用户应该只获取那些在他们订阅的节点上发布的图像 c. 我必须跟踪图像将存储在网络服务器上的哪个位置(该数据库表或仅基于 pubsub 节点名称和 pubsub 项 id 组合的文件夹/文件结构,以访问网络服务器上的图像文件)
任何意见将不胜感激!谢谢!
xmpp - 旁遮普邦并未始终承认它正在从 strophe 获取消息
首先,提前感谢您和我一起看这个问题。
我目前正在使用 strophe.js 通过 BOSH 连接连接到旁遮普邦,最终将消息转发到 Openfire。我在服务器上预绑定并附加到与 strophe 的连接。这最初工作正常;我可以发送和接收消息,当我收到空闲 ping 时,我能够成功响应。但是,一段时间后,我会断开连接。
检查旁遮普日志后,当我从 strophe 发送消息时,似乎并不总是从旁遮普得到 httpbind 确认。Strophe 按预期等待大约 60 秒,然后尝试再次发送消息 - 具有相同 ID 的完整副本。这是有道理的,因为它不知道旁遮普是否收到了这条消息,因为它从未承认过。然而,由于某种原因,旁遮普省收到了这条重复消息,并认为它是一个带有不正确 RID 的新消息,因此它增加了它的内部 RID 计数器,就像它会增加任何其他消息一样。此外,它再次将消息转发到 Openfire 服务器,尽管据我所知,我还没有看到这有任何显着影响。最后,在这种情况发生了很多次之后,
我的问题是,为什么旁遮普邦没有按应有的方式承认一些信息——回到<body xmlns='http://jabber.org/protocol/httpbind'/>
strophe。
此过程通过以下日志中的示例进行了详细说明:
任何帮助将不胜感激。也许我不完全理解旁遮普在做什么。在我看来,旁遮普邦通过 BOSH 从打包在 httpbind 正文中的 strophe 中获取消息。它从 httpbind 正文中提取消息并通过直接会话将裸消息转发给 Openfire。最后,它通过返回一个裸消息来响应 strophe <body xmlns='http://jabber.org/protocol/httpbind'/>
,让 strophe 知道该消息已被接收并处理。当消息来自 Openfire 时,它们会显示在 [XmlStream,client] 标头下的日志中,而不是 [HTTPChannel,21,127.0.0.1] 标头下。这些来自 Openfire 通过直接会话连接,Punjab 将它们包装在 httpbind 主体中,然后通过 BOSH 将它们转发到 strophe。Strophe 然后返回一个空<body xmlns='http://jabber.org/protocol/httpbind'/>
的确认交易。
那么为什么旁遮普邦有时不承认该信息呢?为什么它没有将重复的消息视为重复消息而只是返回确认而不是重新发送它并错误地增加它的 RID 计数器?再一次,谢谢你,谢谢你,谢谢你读到这里。我无能为力,任何帮助将不胜感激。
这是失败的完整旁遮普日志:
backbone.js - Backbone 和 Strophe muc 插件:处理传入事件
我收到了发送到房间的最后一条消息,这些消息也将显示在视图中,但是如果有新消息进入 Strophe 事件处理程序,则尽管我通过线路看到传入的消息节(连接上的 xmlInput),但不会触发。
这可能是什么原因?
连接后,我创建 MessageList 并注册 Strophe 处理程序:
和 MVC: