2012-06-04 3 views
1

IM 용 서버리스 앱을 만들려고합니다. 나는 apple bonjour 프로토콜을 사용하여 xmpp 서비스를 발견했다. 하지만 일단 내가 내 호스트 (pidgin + bonjour를 사용하여 리눅스 컴퓨터)에 연결할 수없는 사람. 내가 XmppException "서버에서 응답을"없어 한안드로이드에서 asmack과 bonjour를 사용하는 Xmpp 연결

public class Xmpp extends AsyncTask<Void, Void, Void> 
{ 
    @Override 
    protected Void doInBackground(Void... arg0) 
    { 
     ConnectionConfiguration connConfig = 
       new ConnectionConfiguration("192.168.0.11", 5298, "bonjour"); 
     XMPPConnection connection = new XMPPConnection(connConfig); 
     try 
     { 
      // Connect to the server 
      connection.connect(); 
      // Most servers require you to login before performing other tasks. 
      connection.login("grea08", "mypass"); 
      // Start a new conversation with John Doe and send him a message. 
      Chat chat = connection.getChatManager().createChat("[email protected]", new MessageListener() { 


       public void processMessage(Chat chat, Message message) { 
        // Print out any messages we get back to standard out. 
        Log.v(getClass().getName(), "Received message: " + message); 
       } 
      }); 

      chat.sendMessage("Howdy!"); 
     } catch (XMPPException e) 
     { 
      // TODO Auto-generated catch block 
      Log.e(getClass().getName(), "Xmpp error !", e); 
     } 
     // Disconnect from the server 
     connection.disconnect(); 
     return null; 
    } 

} 

:

여기 (here에서 가져온) 내 코드입니다. 나는 호스트가 XMPP 서버가 아니며 프로토콜 this을 사용해야한다고 생각한다. 생성

+0

정말'192.189 ...'192.168 ...'이 아닙니다. 대부분의 내부 IP 주소는 192.168입니다. – Jave

+0

아, 간단한 실수입니다. 감사합니다. 나는 – grea09

+0

이 아닙니다. "응답 없음"오류가 발생하지 않습니다. – grea09

답변

1

헤로인과 aSmack이 XEP-0174 (일명 링크 로컬 또는 서버를 사용하지 않는 메시징.)에 대한 지원이 없습니다. Jonas patches 트렁크에 들어 본 적이 없습니다. 추적 할 해당 문제는 SMACK-262입니다.

+0

어쨌든 그것을 어떻게 사용할 수 있습니까? – grea09

+0

SMACK-262에 부착 된 패치를 사용해 볼 수 있습니다. 그러나 Smack의 현재 트렁크에 성공적으로 적용하려면 수정이 필요할 것입니다. – Flow

+0

이전 버전을 컴파일해야하거나 최신 버전을 패치 할 수 있습니까? 그 작업을 마치면 "LL"클래스 만 사용하면됩니까? XMPPLLConnection, LLPacketReader 등? 알아야 할 것이 있습니까? – grea09

0

에 한번 당신의 구성과 XMPPConnection :

ConnectionConfiguration config = new ConnectionConfiguration("192.189.0.11", port); 
//Set optional configurations on the config object. 
Connection connection = new XMPPConnection(config); 
+0

방금 ​​시도했지만 더 잘 작동합니다. 이제 "No Response from server"라는 XMPP 오류가 발생합니다. 아마도 호스트가 xmpp 서버가 아니고 다른 클라이언트가 아니므로 잘못하고 있습니다. 이 페이지 http://xmpp.org/extensions/xep-0174.html에서 설명한 것과 같은 메시지를 보내는 방법이 있습니까? – grea09

1

Gibberbot 오픈 소스 프로젝트는 XMPP Bonjour 서버없는 통신을 지원합니다.

또한 can be installed from Google Play입니다.

아마도 소스를 체크 아웃하고 앱 관련 코드를 추출 할 수 있습니다. :-)