private void SessionAvailable(object sender, XmppSessionArgs e) { if (e.Session.Jid.Server == jid.Server) { SendRosterPresences(e.Session); SendOfflinePresences(e.Session); SendOfflineMessages(e.Session); } }
private void SessionUnavailable(object sender, XmppSessionArgs e) { if (e.Session.Jid.Server == jid.Server) { try { offlineStore.SaveLastActivity(e.Session.Jid, new LastActivity(e.Session.Presence != null ? e.Session.Presence.Status : null)); } catch { } if (e.Session.Available) { var presence = new Presence() { Type = PresenceType.unavailable, From = e.Session.Jid, }; handlerManager.ProcessStreamElement(presence, e.Session.Stream); } } }