⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jabberendpoint.cs

📁 语音视频功能 里面实现了基本的QQ与语音对话
💻 CS
字号:
using System;

using gowk.core.managers;
using gowk.net.Sockets;

namespace gowk.core
{
	/// <summary>
	/// JabberEndPoint 的摘要说明。
	/// </summary>
	public abstract class JabberEndPoint:System.IDisposable
	{
		private JabberStream js;
		private JabberStreamReader jsr;
		private JabberStreamWriter jsw;
		private JabberMessageWatcher watcher;
		private ManagerCollection managers;
		private GSecureSocket sock;
		private State state;
		private Jid jid;
		public event System.EventHandler StateChange;
		public JabberEndPoint()
		{
			this.state=State.Disconnected;
			this.js=new JabberStream();
			this.jsr=new JabberStreamReader();
			this.jsw=new JabberStreamWriter();
			this.jsw.Stream=js;
			this.jsr.Stream=js;
			this.watcher=new JabberMessageWatcher(this);
			this.managers=new ManagerCollection();
			this.js.JabberStreamEnd+=new EventHandler(js_JabberStreamEnd);
		}
		#region
		public ManagerCollection Managers
		{
			get{return this.managers;}
			set{this.managers=value;}
		}
		public Jid Jid
		{
			get{return this.jid;}
			set{this.jid=value;}
		}
		public virtual State State
		{
			get{return this.state;}
			set
			{
				System.Diagnostics.Trace.WriteLine("set State  to:"+value.ToString());
				if(this.state!=value)
				{
					this.state=value;
					if(this.StateChange!=null)
					this.StateChange(this,System.EventArgs.Empty);
				}
			}
		}
		public JabberStream JabberStream
		{
			get{return this.js;}
		}
		public JabberStreamReader JabberStreamReader
		{
			get{return this.jsr;}
		}
		public JabberStreamWriter JabberStreamWriter
		{
			get{return this.jsw;}
		}
		public JabberMessageWatcher JabberMessageWatcher
		{
			get{return this.watcher;}
		}
		public GSecureSocket Socket
		{
			get{return this.sock;}
			set{this.sock=value;}
		}
		#endregion

		#region IDisposable 成员

		public virtual void Dispose()
		{
			if((this.sock!=null)&&this.sock.Connected)
			{
				this.sock.Close();
			}
		}

		#endregion

		private void js_JabberStreamEnd(object sender, EventArgs e)
		{
			try
			{
				if(this.Socket!=null)
				{
					this.Socket.Close();
					this.sock=null;
				}
			}
			catch
			{
			}
			this.State=State.Disconnected;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -