Ejemplo n.º 1
0
        public override void Send(string data)
        {
            base.Send(data);

            // This are hacks because we send no stream headers and footer in Bosh
            if (data.StartsWith("<stream:stream"))
            {
                if (!streamStarted && !restart)
                {
                    streamStarted = true;
                }
                else
                {
                    byte[] bin = Encoding.UTF8.GetBytes(DummyStreamHeader);
                    base.FireOnReceive(bin, bin.Length);
                }
                return;
            }

            if (data.EndsWith("</stream:stream>"))
            {
                XMPPProtocol.Protocol.client.Presence pres = new XMPPProtocol.Protocol.client.Presence();
                pres.Type = XMPPProtocol.Protocol.client.PresenceType.unavailable;
                data      = pres.ToString(); //= "<presence type='unavailable' xmlns='jabber:client'/>";
                terminate = true;
            }
            //    return;

            lock (m_SendQueue)
            {
                m_SendQueue.Enqueue(data);
            }

            if (waitingRequests <= 1)
            {
                StartWebRequest();
            }
        }
Ejemplo n.º 2
0
 void m_Xmpp_OnPresence(object sender, XMPPProtocol.Protocol.client.Presence pres)
 {
     //throw new NotImplementedException();
 }
Ejemplo n.º 3
0
        public override void Send(string data)
        {
            base.Send(data);

            // This are hacks because we send no stream headers and footer in Bosh
            if (data.StartsWith("<stream:stream"))
            {
                if (!streamStarted && !restart)
                    streamStarted = true;
                else
                {
                    byte[] bin = Encoding.UTF8.GetBytes(DummyStreamHeader);
                    base.FireOnReceive(bin, bin.Length);
                }
                return;
            }

            if (data.EndsWith("</stream:stream>"))
            {
                XMPPProtocol.Protocol.client.Presence pres = new XMPPProtocol.Protocol.client.Presence();
                pres.Type = XMPPProtocol.Protocol.client.PresenceType.unavailable;
                data = pres.ToString(); //= "<presence type='unavailable' xmlns='jabber:client'/>";
                terminate = true;
            }
            //    return;

            lock (m_SendQueue)
            {
                m_SendQueue.Enqueue(data);
            }

            if (waitingRequests <= 1)
            {
                StartWebRequest();
            }
        }