Skip to content
PCQQ协议
Branch: master
Clone or download
Pull request Compare This branch is even with zlzforever:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
QQ.Framework
QQ.FrameworkTest
QQLoginTest
.gitignore
.travis.yml
LICENSE
QQ-King.sln
README.md
pc-koukou
tox_save.png

README.md

PCQQ-Protocol

PCQQ协议 简单实现某版本QQ登录与收发消息的功能,可以用来制作使用QQPC协议的机器人

如果对你有用,希望你能留下Star

Build Status

源码仅供参考,欢迎吐槽

2018-9-26

  1. 群分组信息和好友信息查询
  2. 新增.net standard分支
  3. 主分支修改为.net framework

2018-9-25

  1. 添加群分组信息报文

2018-9-21

  1. TLV格式登录组包
  2. 升级协议为QQ8.8

2018-9-9

  1. 完成QQClient的重构。
  2. 完成自定义机器人的重构, 示例请查看TestRoBot.cs

2018-9-8

  1. 消息接收后查看确认,发送确认包后不再重复接收消息
  2. 添加消息及自定义机器人相关类图。查看

2018-9-7

  1. 重构完回复包。
  2. 重构消息处理相关,抽象可响应事件列表、转发器、自定义机器人基类。

Tips:文档待补充。

2018-9-6

  1. 添加文档
  2. 如何添加Command查看
  3. 如何自定义自己的机器人。查看

2018-9-5

1.Command提炼为接口, 移除具体Command中的重复定义。
2.Command处理方法更名为Process
3.新增回复包的Command,及对应的Prossor

2018-9-4

1.将QQ.Framework目标框架改为netstandard
2.完善现有有效解析的反射重构
3.添加travis-ci持续集成

2018-9-3

重构MessageManage,将对包的处理逻辑移至Command中, 对应项目里Domains/Commands文件夹下的内容。 如何添加一个Command:

  1. 首先在Domains/Commands下对应目录新建Command, 继承ReceiveCommand/SendCommand
  2. 在新建的Commad上添加[ReceivePackageCommand(QQCommand.具体你的包名)], 这个属性就是包分发的依据,你填写的是什么Command,那么当接收到这个包的时候就会分发给这个类来处理。
  3. 构造函数中实例化对应PacketQQQEventArgs
  4. Receive方法中写你的具体逻辑即可。

通过以上四步, 就可以对一个包的解析啦,不用去修改MessageManage,避免在多人修改时容易产生冲突导致, 也更方便的查看处理包的具体逻辑。

Tips: 可以参考Domains/Commands/ReceiveCommands/LoginPingCommand的写法, 这个是对于Login0x0825包的处理。

2018-9-1

添加XML消息发送
移除ByteBuffer,使用BinaryReader和BinaryWriter进行读写。
发送数据包的方式变更

//原方式
var buf = new ByteBuffer();
new Send_0x0000().Fill(buf);
Send(buf);
//新方式
Send(new Send_0x0000().WriteData());
//使用以下方法替换原有的ByteBuffer.Put和Get
//若类型为byte或byte[]
BinaryReader.ReadByte()
BinaryReader.ReadBytes(int count)<br/>
BinaryWriter.Write(byte) //注意:需要进行类型转换,如Write((byte)1);
BinaryWriter.Write(byte[])
//对于其他类型(char, ushort, int, long)
BinaryReader.BEReadChar()
BinaryReader.BEReadUInt16()
BinaryReader.BEReadInt32()
BinaryWriter.BEWrite(ushort)
//这些扩展方法定义于Utils.Util.cs内。

2018-8-31

合并Core和Framework到同一个文件夹(如果编译出错删除bin、obj和.vs重新编译)
添加发送系统表情(格式为“[face{num}.gif]”),num为系统表情对应索引

2018-8-30

新增长文本分段发送
修改为项目为.Net Core
以一种我也不知道会不会出问题的方式兼容了Core和Framework了

2018-8-29

新增验证码处理

联系方式

我的TOXID:536F06809AAE9F29B8440B308E310AF8A26B9F93ADB60CAE086EEB26AB8F0D167486F38F39ED


You can’t perform that action at this time.