오늘 아침 복잡한 문제가 발생했습니다. XMPP를 사용하여 채팅 응용 프로그램을 만들고 있습니다. 로그인이 성공하고 사용자와 채팅 할 수 있습니다.UserSearchManager에서 XMPP 서비스를 사용할 수 없음 (503) 오류
이제 XMPP 서버에서 사용자를 검색하고 싶습니다.
UserSearchManager usm = new UserSearchManager(connection);
Form searchForm = usm.getSearchForm("search."+connection.getServiceName());
Form answerForm = searchForm.createAnswerForm();
answerForm.setAnswer("Username", true);
answerForm.setAnswer("search", "[email protected]");
ReportedData data = usm.getSearchResults(answerForm, "search."+connection.getServiceName());
System.out.println("data is "+data);
또 하나의 점 - :하지만 오류를 서비스를 사용할 수 없습니다 (503)
이 내 코드를 얻었다. 내가 getSearchServices()http://www.igniterealtime.org/builds/smack/docs/3.2.2/javadoc/org/jivesoftware/smackx/search/UserSearchManager.html#getSearchServices() 방문하여 사용할 때. 나는 의 값이입니다.
이 코드를했다 : -UserSearchManager usm = new UserSearchManager(connection);
System.out.println(usm.getSearchServices().size());
내 XMPP 서버에서 사전 검색 플러그인을 설치해야합니다. 여전히 출력이 0입니다. serach는 @
를 사용하지 않는 경우
여전히 가지고 같은 오류와 같은 이름을 입력합니다! – user2160008
코드를 묶었습니다. 그것은 나를 위해 일합니다. 코드 및 사용 된 모든 버전에 공급자를 추가하고 있습니까? – AwadKab
Sry 나는하지 않았다. 내 연결 코드입니다. ** 문자열 호스트 = "xxx.xxx.xxx.xxx"; \t \t String port = "5222"; \t \t String service = "xxx.xxx.xxx.xxx"; \t \t 문자열 사용자 이름 = "xxx"; \t \t String password = "xxx"; ConnectionConfiguration connConfig = new ConnectionConfiguration (host, Integer.parseInt (port), service); connection = 새 XMPPConnection (connConfig); connection.connect(); connection.login (사용자 이름, 암호); 현재 상태 = 새로운 상태 (Presence.Type.available); \t \t connection.sendPacket (presence); ** – user2160008