コード例 #1
0
    protected override Task OnReceived(IRequest request, string connectionId, string data)
    {
        /***********************2017-09-08  邵国鑫***/
        //1.转发消息到对应id
        //2.连接信息 添加新用户

        try
        {
            CTData <Object> d = new CTData <Object>();
            d = JsonConvert.DeserializeObject <CTData <Object> >(data);
            //初始json
            if (d != null)
            {
                switch (d.DataType)
                {
                case CTData <Object> .DATATYPE_CONNECTED:
                    CTData <CTUser> s    = JsonConvert.DeserializeObject <CTData <CTUser> >(data);
                    CTUser          user = s.Body;
                    CTAreaPool.getInstance().addUser(user);
                    CTUserBase userbase = new CTUserBase();
                    userbase.Sex    = user.Sex;
                    userbase.Uid    = user.Uid;
                    userbase.School = user.School;
                    if (!mClients.ContainsKey(connectionId))
                    {
                        mClients.Add(connectionId, userbase);
                    }
                    if (!mFastClients.ContainsKey(user.Uid))
                    {
                        mFastClients.Add(user.Uid, connectionId);
                    }
                    break;

                case CTData <Object> .DATATYPE_MESSAGE:
                    CTData <CTMessage> ctmsg = JsonConvert.DeserializeObject <CTData <CTMessage> >(data);
                    //文本信息
                    CTMessage msg = ctmsg.Body;
                    if (mFastClients.Count > 0 && mFastClients.ContainsKey(msg.To))
                    {
                        Connection.Send(mFastClients[msg.To], ctmsg.Body.Body);
                    }
                    break;
                }
            }
        }
        catch (Exception e)
        {
            string x = e.Message;
        }

        return(base.OnReceived(request, connectionId, data));
    }
コード例 #2
0
    protected override Task OnReceived(IRequest request, string connectionId, string data)
    {
        /***********************2017-09-08  邵国鑫***/
        //1.转发消息到对应id
        //2.连接信息 添加新用户
        lock (LocObj)
        {
            try
            {
                CTData <Object> d = new CTData <Object>();
                d = JsonConvert.DeserializeObject <CTData <Object> >(data);
                //初始json
                if (d != null)
                {
                    switch (d.DataType)
                    {
                    case CTData <Object> .DATATYPE_CONNECTED:
                        lock (LocObj)
                        {
                            CTData <CTUser> s    = JsonConvert.DeserializeObject <CTData <CTUser> >(data);
                            CTUser          user = s.Body;
                            user.ConnectionId = connectionId;
                            CTAreaPool.getInstance().addUser(user);
                            CTUserBase userbase = new CTUserBase();
                            userbase.Sex    = user.Sex;
                            userbase.Uid    = user.Uid;
                            userbase.School = user.School;
                            if (!GlobalVar.mClients.ContainsKey(connectionId))
                            {
                                GlobalVar.mClients.Add(connectionId, userbase);
                            }
                            else
                            {
                                GlobalVar.mClients[connectionId] = userbase;
                            }
                            if (!mFastClients.ContainsKey(user.Uid))
                            {
                                mFastClients.Add(user.Uid, connectionId);
                            }
                            else
                            {
                                mFastClients[user.Uid] = connectionId;
                            }
                        }
                        break;

                    case CTData <Object> .DATATYPE_MESSAGE:
                        CTData <CTMessage> ctmsg = JsonConvert.DeserializeObject <CTData <CTMessage> >(data);
                        CTMessage          msg   = ctmsg.Body;
                        if (mFastClients.Count > 0 && mFastClients.ContainsKey(msg.To))
                        {
                            Connection.Send(mFastClients[msg.To], data);
                        }

                        /*
                         *
                         *
                         * switch (msg.Type)
                         * {
                         *  //文本信息
                         *  case CTMessage.MESSAGE_TYPE_TEXT:
                         *
                         *      break;
                         *  case CTMessage.MESSAGE_TYPE_EMOJI: break;
                         *  case CTMessage.MESSAGE_TYPE_AUDIO: break;
                         *  case CTMessage.MESSAGE_TYPE_PHOTO: break;
                         * }*/
                        break;
                    }
                }
            }
            catch (Exception e)
            {
                string x = e.Message;
            }
        }
        return(base.OnReceived(request, connectionId, data));
    }