问题标签 [xmppframework]
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.
ios - XMPPFramework - 将联系人添加到 Openfire 服务器
如何使用 Objective-C 通过 XMPPFramework 将用户添加到 Openfire 中另一个用户的联系人,以及如何在 iPhone 应用程序中呈现它?
ios - iPhone Jabber/XMPP 客户端...“TURN 连接失败”
我正在尝试构建一个简单的 Jabber 客户端。我已经下载了这个示例项目,它使用xmpp-framework https://github.com/funkyboy/Building-a-Jabber-client-for-iOS 我在 iOS 模拟器中运行它。我已经在本地安装了 Openfire,以便我可以与登录 iChat 的用户进行交互。
不幸的是,该应用程序只接收消息。它无法发送消息并给出错误“TURN Connection failed!”。
这是尝试连接的代码:
这些是关于成功/失败的方法:
有人可以帮忙吗?谢谢你。
xcode - 接受文件传输
我将 Adium 客户端与我的 iphone 模拟器连接,一切都已连接,TurnSocket 成功并且在 adium 中我发送了一个文件,我收到了这个“iq”:
我想这是接受转移的消息,不是吗?
我必须做什么才能接受它?
谢谢
ios - XMPPFramework - iOS 中未收到存在
我正在尝试将消息从模拟器发送到设备。在模拟器上有一个用户,而在设备上有另一个用户。但是在任何时候都没有收到存在。我正在为 ios 使用 XMPPFramework。这是我用来发送状态的代码
但是最后user1@server.com
登录的地方没有调用以下方法
可能是什么问题?
iphone - 使用 BOSH 的 Openfire 预绑定 + robbiehanson/XMPPFramework 不起作用
我们正在尝试为我们的产品实施XMPP
over BOSH
。Strophe.js
javascript 库可以很好地满足我们在 WWW 站点上的需求。我们请求预绑定,它已交付,然后我们使用 Strophe 的“附加”方法开始我们的会话 - 然后我们能够更新状态和发送/接收消息。在 iOS 方面,我们使用的是 robbiehanson XMPPFramework
,它包含一个 BOSH 传输,但没有附加方法。以下是我试图让它发挥作用的一些悲伤。
我预先绑定,获取我的 sid/jid/rid,然后在 bosh 传输和其他文件中设置内部逻辑,以说明我们已经连接。然后,如果我尝试更新状态,包括给定的 SID,我会发送:
BOSH:发送[1248340729] = <body xmlns="http://jabber.org/protocol/httpbind" sid="568a3ae9" ack="1248340728" rid="1248340729"><presence></presence></body >
但根本没有得到任何答复。这是最后一个。如果我尝试在不指定 SID 的情况下更新状态,我会发送:
BOSH:SEND[1064338700] = <body xmlns="http://jabber.org/protocol/httpbind" ack="1064338699" rid="1064338700"><presence></presence></body>
然后回来:
BOSH:RECD[1342811427] = < body xmlns="http://jabber.org/protocol/httpbind" xmlns:stream="http://etherx.jabber.org/streams" authid="9ef0ccdb" sid="9ef0ccdb "secure="true" requests="2" inactivity="300" polling="5" wait="60"><stream:features><mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl "><机制>PLAIN</mechanism></mechanisms><压缩xmlns="http://jabber.org/features/compress"><method>zlib</method></compression><bind xmlns="urn :ietf:params:xml:ns:xmpp-bind"/>< session xmlns="urn:ietf:params:xml:ns:xmpp-session"/></stream:features></body>
这看起来像是一个连接确认,或者一个连接挑战节,希望我用 PLAIN 信息做出回应——但这已经通过预绑定建立了。如果是连接确认,那么接下来的几行就没有意义了。如果使用上面连接字符串提供的 SID,就好像它是一个肯定(我不确定),这些是下一行:
BOSH: SEND[1342811427] = <body xmlns="http://jabber.org/protocol/httpbind" sid="9ef0ccdb" rid="1342811428"><iq type="set"><bind xmlns="urn: ietf:params:xml:ns:xmpp-bind"><resource>api</resource></bind></iq></body>
BOSH:RECD[1342811427] = <body xmlns=' http: //jabber.org/protocol/httpbind '><iq xmlns="jabber:client" type="error" to="chat.*.com/9ef0ccdb" ><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><resource>api</resource></bind><error code="401" type="auth"><未授权xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq></body>
我没有被授权。现在,如果我尝试使用在预绑定期间协商的 SID,最后两行是不同的:
BOSH: SEND[1172064714] = <body xmlns="http://jabber.org/protocol/httpbind" sid="27e3745b" rid="1172064715"><iq type="set"><resource>api</resource >< /bind></iq></body>
BOSH:RECD[1172064714] = <body xmlns="http://jabber.org/protocol/httpbind"></body>
一个空洞的回应。然后,如果我再次尝试更新我的状态,它会给我一个文字404
页面,说明 SID 无效。当我使用 openfire 提供的 SID 时,如果我重新尝试状态更新,它只会继续给我401 not authorized
.
任何帮助将不胜感激。
iphone - iPhone 的 XMPPRoster 示例?
我查看了示例代码,但如果没有更深入的文档,我仍然无法弄清楚框架的一些关键功能。通常有关于框架的书籍,但似乎有了这个框架,你只能靠自己,直到它获得更多的主流用法。
我如何获得花名册?我看到 XMPPRosterCoreDataStorage 有一个 NSMutableSet 的 rosterPopulationSet。这是组成花名册的一组 XMPPUserCoreDataStorageObjects,即用户吗?
我猜我的方式是一种 hack——在宣布每个用户时获取每个用户的存在,并将其存储在一个数组中。就是网上的小伙伴。不知何故得到了整个花名册,所有不在线的人都离线了。
我认为应该有一个 XMPPUserCoreDataStorageObjects 数组,即 XMPPUserCoreDataStorageObjects 表中的 30 个联系人、30 个条目?我将如何访问该数组以及如何判断它们是否在线?对于在线状态,我是否应该查询其他内容,b/c 它没有封装在 XMPPUserCoreDataStorageObjects 中是吗?我想我可以使用 didReceivePresence 或类似的方法,但总而言之,我想使用框架而不是与之抗争。
欣赏它!
谢谢
iphone - 使用 XMPPFramework for ios 存储消息?
我不确定如何使用 XMPPFramework 的核心数据来存储传入的消息。有没有人有任何关于如何做到这一点的教程?我看到用户对象,它又可以有很多“资源”。收到的每条消息都应该是我创建并保留的新资源吗?
我不知道我的职责是哪一部分,以及框架提供的有关消息历史的哪一部分。我可以拦截每条传入的消息。那么我应该使用核心数据在 Messages 表中创建和存储每条消息吗?我会有一个消息实体。每个 XMPPUser 都会有一个 Message 对象数组。但是,我不会推出我自己的解决方案,这将与框架相悖吗?
谢谢!
iphone - 使用 XMPP 将实时信息发送到正在运行的 iOS 应用程序
我正在开发一个 iOS 应用程序。应用程序有不同的“区域”,用户可以向它们发布“东西”。观看同一区域的其他用户应该将发布的内容发送到他们的手机(但前提是应用程序正在运行)。
我已经开始使用 RESTful API 开发Django后端。我计划在Amazon Web Services上托管后端,每次将某些内容添加到“区域”时,使用Amazon Simple Queue Service将更新时间和“区域”放入队列中。我将制作一个 Python 应用程序来处理队列中的项目,查询数据库以查看哪些用户可以下载新的“东西”——目前这部分计划然后向手机发送Apple 推送通知,如果应用程序正在运行,它可以发出简单的 RESTful 请求以获取 JSON 格式的新数据。
但是我相信XMPP会是一个更好的解决方案(在 iOS 端使用XMPPFramework),并且将来可以支持 Android。
我已经对如何为此目的使用 XMPP 进行了大量研究,但文档表明您将使用公共 XMPP 网络,用户必须设置一个 XMPP 帐户,并且不清楚如何发送非聊天信息。
该项目需要纯粹使用 XMPP 将信息从服务器发送到用户设备。因此它应该是一个私有的 XMPP 网络,如有必要,用户可以在这个私有网络上注册一个 XMPP 帐户(但在幕后,他们不应该知道什么技术正在为应用程序提供动力。)
是否可以仅使用 XMPP 将信息发送到移动应用程序?互联网上的很多答案/教程基本上只是建议使用 XMPP 服务器和客户端 - 没有提及如何在专用网络上连接两者以发送由 XMPP 服务器以外的其他东西确定的数据。
提前谢谢你的帮助 :)
objective-c - Objective-C XMPPFramework 离线队列
希望能找到熟悉https://github.com/robbiehanson/XMPPFramework/wiki的人
我的应用程序在运行该应用程序的其他手机和 iChat 之间发送和接收消息。我正在使用安装在机架空间上的 eJabberd。
问题是,如果我用手机向离线的手机发送消息,用户在他们的应用程序中上线时将不会收到消息(他们在 iChat 中也不会 - 消息永远不会排队)。
但是,当我通过 iChat 发送消息然后在手机上登录我的应用程序时,消息就可以通过了。
无论出于何种原因,我使用上面的 XMPPFramework 发送消息的方式似乎都没有触发服务器的排队功能。我已按照此处的规范发送一条看起来完全一样的消息(使用不同的用户名)
不幸的是,结果相同。我一直试图找到一种方法来查看 iChat 的传出 XML 的样子,但无济于事。希望之前有人遇到过这个问题。
iphone - (iOS) 对 jabber 服务器的递归 vCard-temp 请求?
我正在使用 xmpframework 创建一个 iphone 应用程序,一切正常,但我想用以下代码更新我的个人资料图片。我收到了对服务器的一些不正确的递归 vCard-temp 请求。但是图片得到了更新,并通知了我名单中的所有朋友。
下面的输出和解释
到目前为止我发现了什么,下面导致了这个问题,但我不知道在哪里可以解决它。