示例#1
0
        public async Task <List <Models.User> > GetCart()
        {
            UserListHelper     helper = UserListHelper.Instance;
            List <Models.User> list   = helper.UserList;

            return(list);
        }
示例#2
0
        private SocketMessage Process(string id, SocketMessage msg)
        {
            try
            {
                TopicMessage b_msg;

                switch (msg.Type)
                {
                case (byte)Net.Model.MessageType.Leave:

                    UserListHelper.Remove(id);
                    break;

                case (byte)Net.Model.MessageType.EnqueueRequest:

                    b_msg = SerializeHelper.ProtolBufDeserialize <TopicMessage>(msg.Content);
                    UserListHelper.GetOrAdd(id, b_msg.Topic);
                    TopicQueueHelper.Enqueue(b_msg);
                    return(new SocketMessage((byte)Net.Model.MessageType.EnqueueResponse, null));

                case (byte)Net.Model.MessageType.DequeueRequest:

                    b_msg = SerializeHelper.ProtolBufDeserialize <TopicMessage>(msg.Content);
                    UserListHelper.GetOrAdd(id, b_msg.Topic);
                    var data = TopicQueueHelper.Dequque(b_msg.Topic);
                    if (data != null)
                    {
                        return(new SocketMessage((byte)Net.Model.MessageType.DequeueResponse, SerializeHelper.ProtolBufSerialize(data)));
                    }
                    else
                    {
                        var rmsg = new TopicMessage(b_msg.Topic, null);
                        return(new SocketMessage((byte)Net.Model.MessageType.DequeueResponse, SerializeHelper.ProtolBufSerialize(rmsg)));
                    }

                case (byte)Net.Model.MessageType.Ping:
                    return(new SocketMessage((byte)Net.Model.MessageType.Pong, null));

                default:
                    _server.CloseClientSocket(id);
                    break;
                }
            }
            catch (Exception ex)
            {
                OnError?.BeginInvoke(id, ex, null, null);
            }

            return(null);
        }