/** * 构造方法,初始化模块和服务 * 账号/密码 监听器 线程执行器 * * @param username a {@link java.lang.String} object. * @param password a {@link java.lang.String} object. * @param notifyListener a {@link iqq.im.QQNotifyListener} object. * @param actorDispatcher a {@link iqq.im.actor.ThreadActorDispatcher} object. */ public WebQQClient( QQNotifyListener notifyListener, ThreadActorDispatcher actorDispatcher) { this.modules = new Dictionary <AbstractModule.Type, AbstractModule>(); this.modules.Add(AbstractModule.Type.LOGIN, new LoginModule()); this.modules.Add(AbstractModule.Type.PROC, new ProcModule()); this.modules.Add(AbstractModule.Type.USER, new UserModule()); this.modules.Add(AbstractModule.Type.BUDDY, new BuddyModule()); this.modules.Add(AbstractModule.Type.CATEGORY, new CategoryModule()); this.modules.Add(AbstractModule.Type.GROUP, new GroupModule()); this.modules.Add(AbstractModule.Type.CHAT, new ChatModule()); //this.modules.Add(AbstractModule.Type.DISCUZ, new DiscuzModule()); //this.modules.Add(AbstractModule.Type.EMAIL, new EmailModule()); //this.modules.Add(AbstractModule.Type.QM_LOGIN, new QmLoginModule()); //this.modules.Add(AbstractModule.Type.QM_PROC, new QmProcModule()); //this.modules.Add(AbstractModule.Type.QM_MGR, new QmMgrModule()); //this.modules.Add(AbstractModule.Type.WB_LOGIN, new WbLoginModule()); //this.modules.Add(AbstractModule.Type.WB_PROC, new WbProcModule()); this.service = new ApacheHttpService(); this.session = new QQSession(); this.store = new QQStore(); this.notifyListener = notifyListener; this.actorDispatcher = actorDispatcher; this.init(); }
public static void Main(string[] args) { var threadActorDispatcher = new ThreadActorDispatcher(); IQQClient client = null; start: Console.Write("请输入QQ号:"); var username = Console.ReadLine(); Console.Write("请输入QQ密码:"); var password = Console.ReadLine(); client = new WebQQClient(username, password, handler, threadActorDispatcher); //测试同步模式登录 var future = client.Login(QQStatus.ONLINE, null); Console.WriteLine(client.Account.Username + "-登录中......"); var Event = future.WaitFinalEvent(); if (Event.Type == QQActionEventType.EVT_OK) { Console.WriteLine(client.Account.Username + "-登录成功!!!!"); var getUserInfoEvent = client.GetUserInfo(client.Account, null).WaitFinalEvent(); if (getUserInfoEvent.Type == QQActionEventType.EVT_OK) { Console.WriteLine(client.Account.QQ + "-用户信息:" + getUserInfoEvent.Target); client.GetBuddyList(null).WaitFinalEvent(); Console.WriteLine(client.Account.QQ + "-Buddy count: " + client.GetBuddyList().Count); foreach (var buddy in client.GetBuddyList()) { var f = client.GetUserQQ(buddy, null); var e = f.WaitFinalEvent(); var name = string.IsNullOrEmpty(buddy.MarkName) ? buddy.Nickname : buddy.MarkName; Console.WriteLine("{0}, {1}", buddy.QQ, name); } } //所有的逻辑完了后,启动消息轮询 client.BeginPollMsg(); } else if (Event.Type == QQActionEventType.EVT_ERROR) { var ex = (QQException)Event.Target; Console.WriteLine(ex.Message); client.Destroy(); goto start; } else { Console.WriteLine(client.Account.Username + "-登录失败"); client.Destroy(); goto start; } Console.WriteLine("按任意键退出"); Console.ReadLine(); }