很兴奋能得到这么多人的支持,这也足于说明大家对于这个开发包也是期盼已久的。在这里,为了感谢这么多支持和期待的朋友,我还是第一时间发布一个预览版吧。在这个版本中,已经实现了QQ的一些基本功能,包括:
目前就是这么多功能,不过对于只是想开发QQ机器人的朋友来说,这些功能应该是够用了。我今天也特意测试了一些稳定性,结果还是比较满意的,我使用的是代理上网,而且网络情况也不是很稳定。连接在线已经6个小时了,目前依然在线,没有出现什么问题。
回到QQ.NET使用本身,如果你是直接上网,那么只需要下面这段代码即可登录:
QQUser user = new QQUser(****, "****"); QQ.NET.QQClient client = new QQ.NET.QQClient(user); user.IsUdp = true; client.LoginServerHost = "219.133.62.8"; client.Login();
而如果你代理,则需要设置一下代理服务器地址。注意:目前只需要两个登录方式,如果你直接上网你只能使用UDP登录;如果使用代理上网,那么你就只能使用TCP登录(IsUdp = false)。
暂时先忍一下吧。
接口方面,因为QQ本身的功能有很多,我没有像LumaQQ那样把所有的功能都定义在QQClient里面,而是将不同的功能包装到不同的类里面,比如连接功能有ConnectionManager,包发送和处理有PacketManager,而好友处理则放在FriendManager里面等等。这样分别包装一下,应该可以大大方便大家的使用。
在QQ事件方面,每一个QQ事件参数都会有InputPacket和OutPacket两个属性,分别表示收到此包和对应的发送包。在有的情况下,可能只有接收包,而没有发送包。因为有的输入包是由服务器主动发送给我们的,比如好友消息和系统消息。所以要正确区分这两个属性的不同之处。
在包的处理方面,收到包的处理和包的重复发送功能我使用了ThreadPool,而不是Timer。这让我们更容易控制这些功能的运行时机,改天有时间我会专门介绍这个功能。另外就是超时包,超时包并不是真的网络发送时超时,而是在一个包发出去后,在一段时间内没有收到QQ服务器的反馈,会再次发送,当发送次数达到一定数量时,就会触发超时事件,不再重复发送。
这个版本按微软的软件发布阶段来定义的话,相当于第一个CTP阶段。主要是想让大家与我一同测试,找出潜在的BUG,找到改进的办法,所以非常欢迎大家提出各建议。
祝大家使用愉快,
源码和文档下载 (感谢DUDU提供的空间
)你也可以从SVN上下载最新代码。
补充:大家可以意见和建议发表到博客园LumaQQ.NET小组
最新相关文章
发表评论