Java 为什么我的身份是';订阅';?
名为Java 为什么我的身份是';订阅';?,java,xmpp,smack,Java,Xmpp,Smack,名为tester的用户在其花名册中添加了另一个用户sanika。sanika的订阅模式设置为花名册。订阅模式。全部接受。但是当tester检查sanika的状态时,他会得到subscribe。为什么会这样 在函数main中,sanika设置其状态,在函数connectTestertester中,尝试获取sanika的状态 public static void main(String[] args) { try { Connection con
tester
的用户在其花名册中添加了另一个用户sanika
。sanika
的订阅模式设置为花名册。订阅模式。全部接受
。但是当tester
检查sanika
的状态时,他会得到subscribe
。为什么会这样
在函数main中,sanika
设置其状态,在函数connectTester
tester中,尝试获取sanika
的状态
public static void main(String[] args) {
try {
Connection connection = new XMPPConnection("localhost");
connection.connect();
connection.login("sanika", "tester");
Roster r = connection.getRoster();
r.setSubscriptionMode(Roster.SubscriptionMode.accept_all);
Presence p = new Presence(Presence.Type.available);
p.setStatus("Having Lunch :)");
connection.sendPacket(p);
connectTester();
Thread.sleep(30000);
} catch(Exception exc) {
exc.printStackTrace();
}
}
public static void connectTester() {
try {
Connection connection = new XMPPConnection("localhost");
connection.connect();
connection.login("tester", "tester");
Roster r = connection.getRoster();
RosterEntry re = r.getEntry("sanika@sanika.com");
System.out.println(re.getStatus().toString());
// PRINTS SUBSCRIBE
}catch(Exception exc) {}
我哪里出错了
注:tester
添加了sanika
作为:
String group[] = {"Friend List"};
r.createGroup("Friend List");
r.createEntry("sanika@sanika.com", "sanika", group);
我将两个用户添加到彼此的花名册中,如下所示
//subscribe to eachother
connection.login("tester", ...);
Presence subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo("sanika@sanika.com");
connection.sendPacket(subscribe);
connection.disconnect();
...
connection.connect();
connection.login("sanika", ...);
subscribe = new Presence(Presence.Type.subscribe);
subscribe.setTo("tester@localhost");
connection.sendPacket(subscribe);
connection.disconnect();
还要注意,您似乎同时使用了
sanika@sanika.com
和sanika@localhost
(在main
中的第一个login
-语句)我发布了一个查询。如果我们可以在这里讨论,我会在那里发布一个查询