版权声明:该开源开发包,是基于LumaQQ的基于等价移植到.NET平台下,开发者不直接参与QQ协议的分析工作,移植到.NET平台纯粹是为了方便广大.NET开发者学习和研究之用,并且没有产生任何直接的经济效益,并且纯粹是个人的技术学习研究行为,与本人所在单位没有任何关系。此开发包的用户在使用过程产生的效益和涉及的法律责任与本人没有直接关系。如果影响到您或您的公司利益,敬请谅解并且与我联系,本人会第一时间作出处理。本系列章首发且单发于博客园,由于各种原因不欢迎转载本系列文章,如果您转载了该系列文章请自行承担责任并且转载完整版本,包括版权声明。
首先要向所有关心LumaQQ.NET发展的朋友们道个歉,因为距上一次版本更新已经过去了一个多月的时间了,新版本一直迟迟都没有发布。在这段时间里,由于一些个人原因,没有时间和精力投入到新版本的开发当中来,让大家失望了。最近很多人都在问,LumaQQ.NET希望做得什么程度。我目前的定位是:以Lumaqq2005的协议为蓝本,基本能做到简单的文本信息收发功能即可,不打算去分析更新的协议,也不找算做到能基本代替官方QQ的程度,因为我们是定位在机器人开发包的级别。如果有让您失望,还请谅解。关于更详细的开发计划请参考:关于LumaQQ.NET未来开发计划
在Preview 3当中,我们主要增加了群消息的功能(但不包括群管理功能),还修复和完善了之前存在的一些不足和BUG,下面就来简单了解下:
框架完善部分
- 使用了新的ByteBuffer,可以解决可能存在的内存使用不合理的问题(感谢Red_angelX的提醒和提供这么好的一个类)
- 完善信息发送接口,可以收发长信息(感谢蓝色的风之精灵的贡献)
- 关于如何实现收发长信息可以参考蓝色的风之精灵的两篇文章修改LumaQQ.NET,使其支持长消息发送和使LumaQQ.NET支持接收长消息
- 可以解析默认表情(解析成[face0.gif]等格式,由用户去替换)和自定义表情(文件名) (感谢蓝色的风之精灵的贡献)
- 关于解析表情同样请参考蓝色的风之精灵的文章关于转换QQ消息中系统表情,自定义表情和截图的函数。与之不同的是,我把默认表情都解析成[face{0}.gif]的格式,大家可以根据需要再去替换。
- 修复了一些已知的bug,包括之前的天气预报日期问题和QQ注销后程序不退出会出错的问题等。
新增功能部分,主要新功能群信息的功能
- 得到我加入的群列表。
- 接收群消息和群通知的功能
- 这个功能分为几个事件,这些事件的InPacket事件参数类型都为ReceiveIMPacket,但是事件不同,里面的属性字段使用不同,同样的,所有的群操作命回复事件包都是ClusterCommandReplyPacket,但是根据事件不同,这个对象的属性使用不同。请大家仔细查阅ClusterCommandReplyPacket的注释说明。
- ReceiveClusterIM:接收到群消息事件
- AddedToCluster:被加入到群通知
- RemovedFromCluster:被从某个群中移动的通知
- ApprovedJoinCluster:群管理员同意我加入群的通知
- RejectJoinCluster:群管理员拒绝的加入群的通知
- HasRequestedJoinCluster:有人请求加入群的通知
- 这个功能分为几个事件,这些事件的InPacket事件参数类型都为ReceiveIMPacket,但是事件不同,里面的属性字段使用不同,同样的,所有的群操作命回复事件包都是ClusterCommandReplyPacket,但是根据事件不同,这个对象的属性使用不同。请大家仔细查阅ClusterCommandReplyPacket的注释说明。
- 请求加入群功能,这个功能通过JoinCluster接口发送请求,如果返回结果提示需要发送身份验证,则调用RequestJoinCluster来发送验证信息。加入结果则以系统通知(上面的事件)的形式返回。
- 根据群ID查找群,通过SearchClusterById发送查找群请求。
- 退出群,通过调用ExitCluster请求退出群。
- 发送群信息功能,暂不能分包发送长信息。
- 修改群名片
- 刷新群内组织架构
- 得到单个成员和全部群名片信息
- 得到群资料,群成员列表(QQ号码)
- 得到在线成员
- 得到群成员详细信息
以上功能测试基本正常,如果有任何问题或疑问请通过LumaQQ.NET小组交流讨论,同时大家也可以加入LumaQQ.NET QQ群讨论,号码是:22858783 谢谢!
另外,在这里要特别感谢蓝色的风之精灵的热心和贡献,解决了一些疑难问题,希望大家再接再厉一起来完善LumaQQ.NET。
更新:增加了for vs 2005的Preview3。 04/24/2008