private void OnPresence(S22.Xmpp.Im.Presence presence) { this.IsHasRosterOnline = true; foreach (XmppExtension extension in this.extensions) { IInputFilter <S22.Xmpp.Im.Presence> filter = extension as IInputFilter <S22.Xmpp.Im.Presence>; if ((filter != null) && filter.Input(presence)) { return; } } switch (presence.Type) { case PresenceType.Available: case PresenceType.Unavailable: this.ProcessStatusNotification(presence); break; case PresenceType.Subscribe: this.ProcessSubscriptionRequest(presence); break; case PresenceType.Subscribed: case PresenceType.Unsubscribed: this.ProcessSubscriptionResult(presence); break; case PresenceType.Unsubscribe: this.ProcessUnsubscribeRequest(presence); break; } }
private void OnMessage(S22.Xmpp.Im.Message message) { foreach (XmppExtension extension in this.extensions) { IInputFilter <S22.Xmpp.Im.Message> filter = extension as IInputFilter <S22.Xmpp.Im.Message>; if ((filter != null) && filter.Input(message)) { return; } } if (message.Data["body"] != null) { this.Message.Raise <S22.Xmpp.Im.MessageEventArgs>(this, new S22.Xmpp.Im.MessageEventArgs(message.From, message)); } }
private void OnIq(Iq iq) { foreach (XmppExtension extension in this.extensions) { IInputFilter <Iq> filter = extension as IInputFilter <Iq>; if ((filter != null) && filter.Input(iq)) { return; } } XmlElement element = iq.Data["query"]; XmlElement element2 = iq.Data["b"]; if (element != null) { string namespaceURI = element.NamespaceURI; if ((namespaceURI != null) && (namespaceURI == "jabber:iq:roster")) { CommonConfig.Logger.WriteInfo(iq.ToString()); this.ProcessRosterIq(iq); return; } } else if (element2 != null) { CommonConfig.Logger.WriteInfo("收到捷顺beat心跳包"); this.ProcessBeatIq(iq); } else { if (iq.Data["dreq"] != null) { CommonConfig.Logger.WriteInfo("IM层收到iq请求消息"); this.IqRequestEvents.Raise <S22.Xmpp.Im.IqEventArgs>(this, new S22.Xmpp.Im.IqEventArgs(iq.From, iq)); return; } if (iq.Data["dres"] != null) { this.IqResponseEvents.Raise <S22.Xmpp.Im.IqEventArgs>(this, new S22.Xmpp.Im.IqEventArgs(iq.From, iq)); return; } } this.IqError(iq, ErrorType.Cancel, ErrorCondition.FeatureNotImplemented, null, new XmlElement[0]); }