Exemplo n.º 1
0
        /// <summary>发送接收信息回复包
        ///     <remark>abu 2008-03-10 </remark>
        /// </summary>
        /// <param name="imPacket">The im packet.</param>
        internal void SendReceiveReplyPacket(ReceiveIMPacket inPacket)
        {
            ReceiveIMReplyPacket reply = new ReceiveIMReplyPacket(inPacket.Reply, QQUser);

            reply.Sequence = inPacket.Sequence;
            QQClient.PacketManager.SendPacket(reply);
        }
Exemplo n.º 2
0
        /// <summary>发送接收信息回复包
        ///     <remark>abu 2008-03-10 </remark>
        /// </summary>
        /// <param name="imPacket">The im packet.</param>
        internal void SendReceiveReplyPacket(ReceiveIMPacket inPacket)
        {
            ReceiveIMReplyPacket reply = new ReceiveIMReplyPacket(inPacket.Reply, QQClient);

            reply.Sequence = inPacket.Sequence;
            reply.Command  = inPacket.Command;//修正支持2009发来的消息
            QQClient.PacketManager.SendPacket(reply);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 处理接收信息
        ///     <remark>abu 2008-03-10 </remark>
        /// </summary>
        /// <param name="packet">The packet.</param>
        private void ProcessReceiveIM(ReceiveIMPacket packet)
        {
            QQEventArgs <ReceiveIMPacket, OutPacket> e = new QQEventArgs <ReceiveIMPacket, OutPacket>(client, packet, null);

            //先发送接收确认
            client.MessageManager.SendReceiveReplyPacket(packet);
            if (packet.IsDuplicated)
            {
                client.MessageManager.OnReceiveDuplicatedIM(e);
                return;
            }
            switch (packet.Header.Type)
            {
            case RecvSource.FRIEND:
            case RecvSource.STRANGER:
                switch (packet.NormalHeader.Type)
                {
                case NormalIMType.TEXT:
                    client.MessageManager.OnReceiveNormalIM(e);
                    break;

                case NormalIMType.TCP_REQUEST:
                    break;

                case NormalIMType.ACCEPT_TCP_REQUEST:
                    break;

                case NormalIMType.REJECT_TCP_REQUEST:
                    break;

                case NormalIMType.UDP_REQUEST:
                    break;

                case NormalIMType.ACCEPT_UDP_REQUEST:
                    break;

                case NormalIMType.REJECT_UDP_REQUEST:
                    break;

                case NormalIMType.NOTIFY_IP:
                    break;

                case NormalIMType.ARE_YOU_BEHIND_FIREWALL:
                    break;

                case NormalIMType.ARE_YOU_BEHIND_PROXY:
                    break;

                case NormalIMType.YES_I_AM_BEHIND_PROXY:
                    break;

                case NormalIMType.NOTIFY_FILE_AGENT_INFO:
                    break;

                case NormalIMType.REQUEST_CANCELED:
                    break;

                default:
                    client.MessageManager.OnReceiveUnknownIM(e);
                    break;
                }
                break;

            case RecvSource.BIND_USER:
                break;

            case RecvSource.MOBILE:
                break;

            case RecvSource.MEMBER_LOGIN_HINT:
                break;

            case RecvSource.MOBILE_QQ:
                break;

            case RecvSource.MOBILE_QQ_2:
                break;

            case RecvSource.QQLIVE:
                break;

            case RecvSource.PROPERTY_CHANGE:
                client.FriendManager.OnUserPropertyChanged(e);
                break;

            case RecvSource.TEMP_SESSION:
                client.MessageManager.OnReceiveTempSessionIM(e);
                break;

            case RecvSource.UNKNOWN_CLUSTER:
                break;

            case RecvSource.ADDED_TO_CLUSTER:
                break;

            case RecvSource.DELETED_FROM_CLUSTER:
                break;

            case RecvSource.REQUEST_JOIN_CLUSTER:
                break;

            case RecvSource.APPROVE_JOIN_CLUSTER:
                break;

            case RecvSource.REJECT_JOIN_CLUSTER:
                break;

            case RecvSource.CREATE_CLUSTER:
                break;

            case RecvSource.TEMP_CLUSTER:
                break;

            case RecvSource.CLUSTER:
                break;

            case RecvSource.CLUSTER_NOTIFICATION:
                break;

            case RecvSource.SYS_MESSAGE:
                if (packet.SystemMessageType == SystemIMType.QQ_RECV_IM_KICK_OUT)
                {
                    client.MessageManager.OnReceiveKickOut(e);
                }
                else
                {
                    client.MessageManager.OnReceiveSysMessage(e);
                }
                break;

            case RecvSource.SIGNATURE_CHANGE:
                client.FriendManager.OnSignatureChanged(e);
                break;

            case RecvSource.CUSTOM_HEAD_CHANGE:
                break;

            default:
                break;
            }
        }