2012-03-16 2 views
1

pubsub 서비스에서 제공하는 항목을 검색하려고합니다. 대상 서버에 로그인하면 응답을 성공적으로 가져올 수 있습니다. 하지만 부에 로그인 할 때 연결하지 않으면 잘못된 요청 오류가 발생합니다.로그인하지 않고 스맥 서비스를 검색하면 잘못된 요청이 발생 함 (400)

이 코드입니다 :

ConnectionConfiguration config = new ConnectionConfiguration(serverAddress, 5222); 
config.setServiceName(serviceName); 
connection = new XMPPConnection(config); 
connection.connect(); 
connection.login(userName, password); //!!!when I remove this line, bad request error is received 

ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection); 
DiscoverItems items; 
try { 
items = discoManager.discoverItems("pubsubservice." + serverName); 
} catch (XMPPException e) { 
e.printStackTrace(); 
} 

사용자가 로그인하지 않은 항목을 발견 할 수있는 방법이 있나요하지만 연결이 설정됩니다?

답변

0

아니요, XMPP의 모든 JID로 스탠자를 보내려면 인증을 받아야합니다. 그렇지 않으면 사용자의 주소를 알지 못해서 답장을 보내지 못합니다.

아마도 한 가지 옵션은 익명 인증입니다. 대부분의 서버가이를 지원하고 임시 JID를 사용하여 서버에 임시 계정을 생성합니다. 암호가 필요 없으며 로그인 시간도 빠릅니다.

0

@MattJ는 정확하며 anon 로그인을 사용해 볼 수 있습니다. 그러면 그곳으로 갈 수 있습니다.

현재 요청은 노드를 가져 오지만 각 노드의 항목을 가져와야합니다. PubsubManager을 사용하면 pubsub에 액세스하거나 모든 것을 사용하기위한 편리한 방법을 제공하므로 원하는 정보를 얻는 것이 더 간단 할 것입니다.

당신이 찾고있는 무엇 documentation heregetAffiliations()를 방법이다보십시오.

은 BTW, 나는 pubsub의 일반적인 기본 서비스 이름은 pubsub하지 pubsubservice 믿습니다. 적어도 이것이 Openfire의 경우입니다.

관련 문제