QQ机器人思路理解(C++、CQ)

       近期看着教程写了一下基于C++、CQ下的qq机器人,就是在CQ的主框架上来实现qq的自动检索并回复的功能。就是这样已经把主框架都给出来的前提下,依然还是困难重重。

       首先,qq机器人利用CQ框架下的内用api来检索接受到的私消息、群消息等,所偶有消息都可以在log(CQ的日志)下查看。而我们要做的就是对这些检索来的msg来做处理。处理的大致思路如下:

1、将检索的msg放入自己开辟出来的缓存区中,采用轮询机制(线程)来放入、读取。这样的目的是防止在短时间内对大量信息的处理导致主框架的崩溃,利用异步线程来对开辟出来的buf处理,保证在大量消息下程序依然能正常运行。

2、利用XML技术来对自定义问题question和答复answer的读取,说白了就是自己先写一个xml文件,文件中包含多对question和answer元素,利用tinyxml API来读取xml文件中question和对应的answer并存入list<组合>数组中,再利用函数通过传入参数的方法将CQ中的msg间接传入进来,然后将msg与question对比(msg.find(question))来找出msg中question对应的answer,并返回对应的answer。

3、在线程的mainThread中传入CQ的msg,编写对answer的具体处理。

4、回到CQ的主框架中在相应位置来Run线程、Jion线程和(msg、fromQQ等)参数的传出。

你可能感兴趣的:(C++学习笔记)