2014-02-17 2 views
0

Я делаю клиент чата Windows, используя библиотеку Jabber-Net. Когда пользователь выходит, я использую этот код, чтобы установить статус «Недоступно», чтобы люди могли видеть их статус в автономном режиме. Его видно на клиентах XMPP, таких как Spark. Но я не могу получить статус другого контакта. установив этот статус .... Как я могу его получить. Пожалуйста, помогите !! ...Получить статус контакта xmpp

 jabberClient1.Presence(jabber.protocol.client.PresenceType.unavailable, ApplicationVariables.chatstatus, ApplicationVariables.chatpresence, 0); 

ответ

0

Я сам это нашел ... и я рад поделиться им. Пусть это будет полезно людям, которые этого хотят.

public void RequestLastMessage(JID jabberid) 
{ 
    try 
    { 
     LastIQ iq = new LastIQ(jabberClient1.Document); 
     iq.To = jabberid; 

     iq.Type = jabber.protocol.client.IQType.get; 
     jabberClient1.Tracker.BeginIQ(iq, LastMessage, null); 
    } 
    catch (Exception ex) 
    { 
     DebugLogger.LogRecord(ex.Message + " [ Function: " + System.Reflection.MethodBase.GetCurrentMethod().Name + " Class: XMPPWrapper ]"); 
    } 
} 

private void LastMessage(object sender, jabber.protocol.client.IQ iq, object state) 
{ 
    try 
    { 
     if ((iq == null) || (iq.Type != jabber.protocol.client.IQType.result)) 
      return; 
     Last ll = iq.Query as Last; 
     if (iq.From != null && ll.Message != "") 
      if (ApplicationVariables.GlobalContactForm != null) ApplicationVariables.GlobalContactForm.SetOfflineStatus(ll.Message, iq.From); 
    } 
    catch (Exception ex) 
    { 
     DebugLogger.LogRecord(ex.Message + " [ Function: " + System.Reflection.MethodBase.GetCurrentMethod().Name + " Class: XMPPWrapper ]"); 
    } 

} 
Смежные вопросы