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>")) { protocol.client.Presence pres = new protocol.client.Presence(); pres.Type = agsXMPP.protocol.client.PresenceType.unavailable; data = pres.ToString(); //= "<presence type='unavailable' xmlns='jabber:client'/>"; terminate = true; } // return; lock (m_SendQueue) { m_SendQueue.Enqueue(data); } CheckDoRequest(); return; }
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>")) { protocol.client.Presence pres = new protocol.client.Presence(); pres.Type = agsXMPP.protocol.client.PresenceType.unavailable; data = pres.ToString(); //= "<presence type='unavailable' xmlns='jabber:client'/>"; terminate = true; } // return; lock (m_SendQueue) { m_SendQueue.Enqueue(data); } CheckDoRequest(); return; }