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

📄 authenticatemanager.cs

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

using gowk.core.packets;
using gowk.core.packets.querys;
using gowk.net.Sockets;
using gowk.net;
namespace gowk.core.managers
{
	/// <summary>
	/// AuthenticateManage 的摘要说明。
	/// </summary>
	public class AuthenticateManager:ManagerBase
	{
		public event JabberEventHandler LoginResult;
		public AuthenticateManager():base()
		{
		}
		public AuthenticateManager(JabberClient jc):base(jc)
		{
		}
		protected internal override bool OnMessage(gowk.core.packets.Packet pack)
		{
			if(!(pack is IQ))return false;
			IQ iq=(IQ)pack;
			if(!(iq.Query is AuthQuery))return false;
			return base.OnMessage (pack);
		}
		public void Login()
		{
		/*	this.JabberClient.State=State.Logining;
			IQ ar=new IQ();
			ar.ID=IDGenerator.NewID;
			ar.Type=PacketType.get;
			AuthQuery arq=new AuthQuery();
			arq.Username="gowhcy";
			ar.Query=arq;
			this.Send(ar);
			System.Threading.Thread.Sleep(300);*/
			
			IQ iq=new IQ();
			iq.To=this.JabberClient.Jid.Server;
			iq.Type=PacketType.set;
			iq.ID=IDGenerator.NewID;
			AuthQuery aq=new AuthQuery();
			aq.Username=this.JabberClient.Jid.User;
			System.Diagnostics.Debug.Assert(this.JabberClient.JabberStream.ID!=null);
			aq.SetDigest(this.JabberClient.JabberStream.ID,this.JabberClient.Password);
		//	aq.Password=this.JabberClient.Password;
			aq.Resource=this.JabberClient.Jid.Resouce;
			iq.Query=aq;
			if(this.LoginResult!=null)
			this.Send(iq,new JabberCallBack(this.OnLoginResult),20000);
		}
		public void OnLoginResult(JabberEventArgs a)
		{
			if(a.ReplyPacket!=null && a.ReplyPacket.Type==PacketType.result)
			{
				this.JabberClient.State=State.Logined;
			}
			if(this.LoginResult!=null)
			this.Invoke(this.LoginResult,new object[]{a});
		}

	}
}

⌨️ 快捷键说明

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