问题标签 [smack]

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 投票
9 回答
13996 浏览

android - 如何使用 (a)Smack 库在 XMPP 上注册新用户

我已经使用这里的好帖子设置了 xmpp 服务器和 android 客户端......我在 xmpp 服务器中设置了一些预定义的用户,我可以使用这些凭据登录。

现在,从我的应用程序中,我想通过 android 客户端注册为 xmpp 服务器的新用户。任何人都可以请建议我如何实现这一点...任何帮助将不胜感激...!!!

0 投票
2 回答
8051 浏览

xmpp - 发送 XMPP (Smack) 消息

好的,问题应该是微不足道的,但我无法深入了解它。

我有两个用户 A 和 B

他们在本例中的 JID 将是 A@123 和 B@123,其中 123 是服务器的 IP。

我使用以下代码从 A->B 发送消息:

我已经对 IP 进行了硬编码,因此我 100% 确定我在昵称末尾附加了“@123”,因此没有不正确的 JID。

所以 A@123 将 msgObj 发送给 B@123。这就是我理解 XMPP 消息传递工作的方式。您不能从 A->B 发送,但必须是 A@123 -> B@123。

但是,我的服务器似乎不这么认为。它不断通知我以下错误:

在 Openfire 服务器上 A 和 B 的花名册中,他们以正确的 JID(用户名@123)作为联系人。

谁能提供一些见解?我迷路了。

编辑

我正在尝试使用 Wireshark 捕获发送到 Openfire 服务器和从 Openfire 服务器发送的 XML,以确定消息的收件人是否正确命名(A@123 而不是 A)。

使用 Wireshark 后,我收到了正在传输的 XML:

我禁用了 SSL,我的连接不安全。我不确定为什么我会得到 SSL 类型的 XML,是这样吗?

0 投票
2 回答
1684 浏览

android - Smack ChatManager 行为不正常

我已经搜索了很多,试图找到一些关于 Smack 和他们的 ChatManager 的额外信息,但是没有太多,所以是时候来 SOF 了。

我在代码中的某个时刻做了一些非常基本的事情:

我正在尝试验证我刚刚创建的聊天实际上是否在 chatManager 中

在我的程序中,我只创建了 1 个 chatManager 实例,但我多次这样做:

我有一种感觉,每次我这样做时,chatManager 都会被重新初始化。我完全错了吗?

无论如何,问题是我没有得到任何输出。“聊天为空”或“聊天已保存”都不是。让我相信 chatManager 正在引起问题。

任何人都可以帮忙吗?

0 投票
2 回答
745 浏览

java - XMPP: RFC on establishing mutual subscription when original requester is offline (subscribed presence)

we've got an XMPP server (OpenFire) and a custom client based on the Java Smack XMPP stack. We're using manual subscription acceptance, so clients have to exchange subscribe and subscribed presences.

As noted in the RFC, subscribe presences ("I want to subscribe to your presences") are stored by the server and resent every time the user logs in until he answers them. Unfortunately, the same does not seem to be true for the answers ("subscribed" or "unsubscribed"). If the original requester if offline when the other users answers the subscription request, he does not receive the answer. I could not find anything in the XMPP RFC about expected behaviour of the server.

What can I do? Is there something I might have missed? Or is there a standard way to implement this use case?

This OpenFire forum post suggests that the behaviour I'm experiencing is the desired one...

Thanks for all pointers, Florian

0 投票
1 回答
504 浏览

java - Smack API - 如何显示循环 jxTaskpane 以展开和折叠名册列表

我在显示任务窗格 for 循环时遇到问题。我有一个代码来获取名册组(组:朋友 - 业务 - 公司等)我的代码是:

但是 jxTaskpane 没有循环,但是当我打印组名时它打印 2 行(因为在数据库中用户 A 有两个组是 Friends 和 NIIT)

样品打印

结果:

0 投票
5 回答
14963 浏览

android - 我可以通过 Smack 在我的朋友列表中获取在线用户吗?

我可以通过 Smack API 在我的好友列表中获取在线用户吗?是否可以?

我正在开发用户之间聊天的应用程序。我已经成功创建了聊天应用程序示例,只需输入朋友的姓名并发送聊天,但现在我想要在线朋友列表。

0 投票
2 回答
2188 浏览

android - Android 上的 XMPP 事件

我正在尝试开发一个拦截 XMPP 消息并执行操作的后台进程,我使用 asmack 作为主要的 XMPP 库。我想我需要一个响应特定意图的广播接收器。问题是如何提高意图?这必须是可能的,因为此功能存在于 google talk 客户端中。提前谢谢了。

0 投票
2 回答
1884 浏览

android - Facebook 聊天无法在 Android 的 Smack API 中工作

我正在为我的应用程序开发聊天客户端。现在我正在 Gtalk、Facebook、Yahoo 上测试它。我为此使用 Smack api。我现在在 Gtalk 上成功测试了它。但在 Facebook 的情况下,我得到了错误:

如您所见,我可以连接但无法登录。我已经在这里看到了同样的问题:http ://stackoverflow.com/questions/3750547/facing-problem-using-smack-on-android但这个答案对我不起作用。

0 投票
0 回答
876 浏览

android - 使用 asmack 发送大文本

我使用asmack为android构建了一个jabber客户端,效果很好,但是在发送中文大文本时遇到了问题。XMPPConnection 立即与服务器断开连接,这是我的连接初始化代码:

我发送这样的聊天消息:

0 投票
2 回答
1539 浏览

java - 在初始广播消息后向特定 Smack 域发送消息

我正在使用 Smack 3.1.0 和 Java 创建一个即时消息客户端。我遇到的问题与向特定域上的用户发送消息有关。

例如,我有两个用户,1@gmail.com 和 2@gmail.com。1@gmail.com 通过我的 IM 客户端登录到 XMPP。2@gmail.com 通过 gmail.com 和第二次通过 pidgin 登录到 GChat。所以现在我有一个 1@gmail.com 实例和 2 个 2@gmail.com 实例。

gmail 的工作方式,如果 1@gmail.com 向 2@gmail.com 发送消息,则 gmail 和 pidgin 客户端都会收到初始消息。但是如果 gmail 实例响应消息,那么从那时起的每条消息都只会在 1@gmail.com 和 2@gmail.com 的 gmail 实例之间传递。

我想用我的 IM 客户端模仿这种行为。我认为这样做的方法是设置聊天,将初始即时消息发送给收件人的所有实例。然后我会设置一个 MessageListener 来监听响应。当我收到回复时,我必须创建一个新的聊天,指定 2@gmail.com/resource。但后来我不得不写两次 MessageListener。有任何想法吗?这是我正在使用的一些示例代码(该方法AddText()只是将消息附加到我的对话窗格):

更新 我想用我用来完成这项工作的实际代码来补充下面的答案:

总而言之,我将第一条消息发送到收件人地址的所有资源并等待响应。当我得到响应时,我将当前Chat对象替换为一个新对象,该对象指定响应初始消息的单个资源。代码有点混乱,有两个不同的MessageListener对象可能会组合成一个新类。但它有效。