2013-03-11 2 views
1

내 채팅 응용 프로그램에서 보낸 사람에게 메시지/채팅을 보낼 때 인터넷 연결 및 XMPP 연결을 확인하고 있습니다. 둘 다 사용할 수있는 경우에만 사용자가 채팅 메시지를 보낼 수 있습니다.XMPP에서 인터넷을 사용할 수 없을 때 대기열에 넣는 메시지

예 : - 나는의 Openfire 서버를 사용하고

if(connection.IsConnected){ 

//code to send the message to the sender 
} 

.

인터넷을 사용할 수없고 사용자가 메시지를 보내려고 할 때 메시지를 보내야합니다 (예 : 메시지를 대기열에 추가해야 함) 곧 수신자에게 보내야하는 기능을 구현하고 싶습니다. Whats App과 마찬가지로 인터넷을 다시 사용할 수 있습니다.

감사

+0

사용중인 Xmpp 서버는 무엇입니까? – MuraliGanesan

+0

Openfire Server –

+0

ejabbered xmpp 서버를 사용하고 있습니다. 이에 대한 지식이 있습니까? 감사. 서버와 연결할 수 있습니다 ** 기본 버퍼 크기는 BufferedReader 생성자에서 사용됩니다. 8k-char 버퍼가 필요한지를 명시하는 것이 더 낫습니다. **이 메시지 받기 – MuraliGanesan

답변

1

더 인터넷/XMPP 연결이없는 경우 서버가이 경우에 무관하다. 클라이언트에 메시지를 버퍼링하고 연결이 다시 설정되면 메시지를 보냅니다.

Smack 또는 asmack을 사용한다고 가정합니다. 즉, 연결에 연결 리스너를 만들면 연결 연결이 다시 설정 될 때 버퍼링 된 메시지를 보낼 수 있습니다.

connection.addConnectionListener(new ConnectionListener() 
{ 
     : 
    public void reconnectionSuccessful() 
    { 
     resendFromBuffer(); 
    } 
}); 
+0

안녕하세요 @ 로빈. 나는 Connection Listener를 사용할 수 있었다. 그러나 메시지를 버퍼하는 방법 ?? 좀 도와 줄 수있어? –

+0

코드에서 성공적으로 이동하고 있습니다. 재 연결 성공,하지만 버퍼에 메시지를 저장하는 방법을 모른다. 제발 도와주세요 –

+1

그것은 자신의 코드가 될 것입니다. Smack은 그러한 기능을 제공하지 않습니다. 연결 확인 (예 : 귀하의 예와 같이)을 한 후 send 메소드에서 수행하십시오. – Robin

관련 문제