基于Flexlive.CQP.Framework的C# 酷Q UDP实现

在阅读本文章之前,希望您已经看过这篇文章,这相对理解这个文章要更容易一些:http://www.cnblogs.com/Traceless/p/6010574.html


近期由于项目需要,需要对接酷Q,找了很多资料,基本都是E语言的,这对C#程序员就有点过分了。。。

也幸得找到了一个Flexlive.CQP.Framework的框架,针对酷Q的二次封装。

由于该框架是基于加载插件来进行的,需要将我们自己的项目与酷Q对接分离,这并不合理,于是我将其做了一些改动,使它采用C#的事件机制。


首先在你的项目直接引用:Flexlive.CQP.Framework.dll


一、首先调用该框架的UDP协议启动对酷Q的监控:

        /// <summary>
        /// 启动酷Q UDP协议监控
        /// </summary>
        public bool Start()
        {
                try
                {
                    CQUDPProxy.GetInstance().Start();
                    Program.SendLog("启动完成,正在启动酷Q");
                    var myProcesses = System.Diagnostics.Process.GetProcessesByName("CQP");
                    if (myProcesses.Length <= 0)
                    {
                        var path = Application.StartupPath + @"\CQP.exe";
                        Process.Start(path);
                    }
                }
                catch (Exception ex)
                {
                    return false;
                }  
            }
            return true;
        }

二、对框架中的CQMessageAnalysis类的事件订阅(该类为静态类)

  /// <summary>
        /// Type=21 私聊消息。
        /// </summary>
        public static event EventPrivateMessage EventPrivateMessage;

        /// <summary>
        /// Type=2 群消息。
        /// </summary>
        public static event EventGroupMessage EventGroupMessage;

        /// <summary>
        /// Type=4 讨论组消息。
        /// </summary>
        public static event EventDiscussMessage EventDiscussMessage;

        /// <summary>
        /// Type=11 群文件上传事件。
        /// </summary>
        public static event EventGroupUpload EventGroupUpload;

        /// <summary>
        /// Type=101 群事件-管理员变动。
        /// </summary>
        public static event EventGroupAdmin EventGroupAdmin;

        /// <summary>
        /// Type=102 群事件-群成员减少。
        /// </summary>
        public static event EventGroupMemberDecrease EventGroupMemberDecrease;

        /// <summary>
        /// Type=103 群事件-群成员增加。
        /// </summary>
        public static event EventGroupMemberIncrease EventGroupMemberIncrease;
        /// <summary>
        /// Type=201 好友事件-好友已添加。
        /// </summary>
        public static event EventFriendAdded EventFriendAdded;

        /// <summary>
        /// Type=301 请求-好友添加。
        /// </summary>
        public static event EventRequestAddFriend EventRequestAddFriend;
        /// <summary>
        /// Type=302 请求-群添加。
        /// </summary>
        public static event EventRequestAddGroup EventRequestAddGroup;

这些事件分别的参数和注释:


    /// <summary>
    /// Type=21 私聊消息
    /// </summary>
    /// <param name="subType">子类型,11/来自好友 1/来自在线状态 2/来自群 3/来自讨论组</param>
    /// <param name="sendTime">发送时间(时间戳)</param>
    /// <param name="fromQQ">来源QQ</param>
    /// <param name="msg">消息内容</param>
    /// <param name="font">字体</param>
    public delegate void EventPrivateMessage(int subType, int sendTime, long fromQQ, string msg, int font);

    /// <summary>
    /// Type=2 群消息。
    /// </summary>
    /// <param name="subType">子类型,目前固定为1。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromGroup">来源群号。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="fromAnonymous">来源匿名者。</param>
    /// <param name="msg">消息内容。</param>
    /// <param name="font">字体。</param>
    public delegate void EventGroupMessage(
        int subType, int sendTime, long fromGroup, long fromQQ, string fromAnonymous, string msg, int font);

    /// <summary>
    /// Type=4 讨论组消息。
    /// </summary>
    /// <param name="subType">子类型,目前固定为1。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromDiscuss">来源讨论组。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="msg">消息内容。</param>
    /// <param name="font">字体。</param>
    public delegate void EventDiscussMessage(int subType, int sendTime, long fromDiscuss, long fromQQ, string msg, int font);

    /// <summary>
    /// Type=11 群文件上传事件。
    /// </summary>
    /// <param name="subType">子类型,目前固定为1。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromGroup">来源群号。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="file">上传文件信息。</param>
    public delegate void EventGroupUpload(int subType, int sendTime, long fromGroup, long fromQQ, string file);
    /// <summary>
    /// Type=101 群事件-管理员变动。
    /// </summary>
    /// <param name="subType">子类型,1/被取消管理员 2/被设置管理员。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromGroup">来源群号。</param>
    /// <param name="beingOperateQQ">被操作QQ。</param>
    public delegate void EventGroupAdmin(int subType, int sendTime, long fromGroup, long beingOperateQQ);

    /// <summary>
    /// Type=102 群事件-群成员减少。
    /// </summary>
    /// <param name="subType">子类型,1/群员离开 2/群员被踢 3/自己(即登录号)被踢。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromGroup">来源群。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="beingOperateQQ">被操作QQ。</param>
    public delegate void EventGroupMemberDecrease(int subType, int sendTime, long fromGroup, long fromQQ, long beingOperateQQ);

    /// <summary>
    /// Type=103 群事件-群成员增加。
    /// </summary>
    /// <param name="subType">子类型,1/管理员已同意 2/管理员邀请。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromGroup">来源群。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="beingOperateQQ">被操作QQ。</param>
    public delegate void EventGroupMemberIncrease(int subType, int sendTime, long fromGroup, long fromQQ, long beingOperateQQ);
    /// <summary>
    /// Type=201 好友事件-好友已添加。
    /// </summary>
    /// <param name="subType">子类型,目前固定为1。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromQQ">来源QQ。</param>
    public delegate void EventFriendAdded(int subType, int sendTime, long fromQQ);

    /// <summary>
    /// Type=301 请求-好友添加。
    /// </summary>
    /// <param name="subType">子类型,目前固定为1。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="msg">附言。</param>
    /// <param name="responseFlag">反馈标识(处理请求用)。</param>
    public delegate void EventRequestAddFriend(int subType, int sendTime, long fromQQ, string msg, string responseFlag);

    /// <summary>
    /// Type=302 请求-群添加。
    /// </summary>
    /// <param name="subType">子类型,目前固定为1。</param>
    /// <param name="sendTime">发送时间(时间戳)。</param>
    /// <param name="fromGroup">来源群号。</param>
    /// <param name="fromQQ">来源QQ。</param>
    /// <param name="msg">附言。</param>
    /// <param name="responseFlag">反馈标识(处理请求用)。</param>
    public delegate void EventRequestAddGroup(
        int subType, int sendTime, long fromGroup, long fromQQ, string msg, string responseFlag);


Flexlive.CQP.Framework类库及源码下载地址:http://download.csdn.net/detail/my_only/9729193


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值