Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
 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));
     }
 }
Ejemplo n.º 3
0
        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]);
        }