【问题标题】:XMPP presence SubscriptionXMPP 存在订阅
【发布时间】:2012-10-08 13:04:22
【问题描述】:

在我的应用程序中,当我使用此代码向任何朋友发送请求时..

try {               
                roster.createEntry(idExtension, nickname, null);
                roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                Presence subscribe = new Presence(Presence.Type.subscribe);
                subscribe.setTo(idExtension);               
                connection.sendPacket(subscribe);


                return true;
            } catch (XMPPException e) {
                System.err.println("Error in adding friend");
                return false;
            }

然后订阅在两个朋友名单中都显示“NONE”。

但应该是“TO”和“FROM”。

但是如果对于同一个过程我使用这个代码 -

try {               
                roster.createEntry(idExtension, nickname, null);
                roster.setSubscriptionMode(Roster.SubscriptionMode.manual);
                Presence subscribed = new Presence(Presence.Type.subscribed);
                subscribed.setTo(idExtension);              
                connection.sendPacket(subscribed);


                return true;
            } catch (XMPPException e) {
                System.err.println("Error in adding friend");
                return false;
            }

然后它给了我在前一种情况下应该得到的正确结果。

请告诉我为什么我在订阅模式下没有得到相同的结果。

谢谢

【问题讨论】:

  • 嗨 Gaurav,文件传输成功了吗?如果是,那么请帮助我做同样的事情。我被这个文件传输卡住了。
  • @juned 没有兄弟,我把那件事放在一边。现在我已经转向其他功能。请帮助我 - stackoverflow.com/questions/13338515/…
  • 是的,实际上我在 Harryjoy 的博客上找到了你。所以我以为你已经完成了文件传输。反正没问题:)
  • @juned 你找到解决我问题的方法了吗?我在上面的链接中提到的??
  • 不,实际上我没有实现该功能,但我建议您了解如何刷新好友列表以查看好友列表中最近添加的用户。在后台使用服务执行此操作并相应刷新。这是我的一般想法,但一旦我解决这个问题,我会给你完整的解决方案。

标签: android xmpp subscription user-presence


【解决方案1】:

我猜你在 Presence 中没有理解 type 的含义。

subscribe -- 发件人希望订阅收件人的 存在。

subscribed -- 发件人已允许收件人 接收他们的存在。

因此,当您发送第一个请求时,您请求用户让您订阅他的出席事件,直到他不允许您这样做,订阅类型为无。

在第二种情况下,您允许用户订阅您的出席信息,即您授予他收听您出席信息的权限,从而获得订阅类型。

【讨论】:

  • 在第一种情况下,当我现在发送订阅请求时,我正在使用 SUBSCRIBE,然后通知会发送给用户。在该通知的允许按钮上,我将状态更改为 SUBSCRIBED,但在开火订阅列表中,我只看到 TO/FROM。但我想要两种状态。怎样才能达到同样的效果。
  • 您必须从两端执行此过程。 Sp总共有4个出席,其中2个订阅类型,另外2个订阅。
  • 我可以和你聊 10 分钟吗
  • 第一步 - 想要添加的人将发送 - 订阅数据包 第二步 - 将接收它的人将发送 - 订阅数据包。之后会发生什么???
  • 然后做相反的过程:收到请求的人现在将发送 SUBSCRIBE,其他人将通过 SUBSCRIBED 响应。
猜你喜欢
  • 2013-12-15
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 2018-08-23
  • 1970-01-01
  • 2011-04-08
  • 2017-02-22
  • 1970-01-01
相关资源
最近更新 更多