Ejemplo n.º 1
0
        /// <summary>
        /// 接收一条消息从客户端
        /// 标志此套接字 仍在使用中
        /// </summary>
        /// <param name="clientId"></param>
        /// <param name="messageId"></param>
        public static void OnReceiveMessageFromClient(string clientId, string messageId)
        {
            if (string.IsNullOrEmpty(clientId) || string.IsNullOrEmpty(messageId))
            {
                return;
            }

            var garbagePair = LstOfRecycleTasks.FirstOrDefault(x => x.Key == clientId && x.Value == messageId);

            if (default(KeyValuePair <string, string>).Equals(garbagePair))
            {
                return;
            }

            //此套接字对象 依然还在使用中
            LstOfRecycleTasks.Remove(garbagePair);

            UserWebSocket userSocket = null;

            DicOfUserWebSocket.TryGetValue(garbagePair.Key, out userSocket);
            if (null != userSocket)
            {
                userSocket.ResetFlags();//复位对象
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 从字典中获取用户的 websocket
        /// </summary>
        /// <param name="cliengId"></param>
        /// <returns></returns>
        public static UserWebSocket GetUserSocketFromDic(string cliengId)
        {
            UserWebSocket socket = null;

            try
            {
                DicOfUserWebSocket.TryGetValue(cliengId, out socket);
                if (null != socket)
                {
                    socket.LastAccessTime = DateTime.Now;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(socket);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 添加到websocket 字典中
        /// </summary>
        /// <param name="uSocket"></param>
        /// <returns></returns>
        public static bool AddUserSocketToDic(UserWebSocket uSocket)
        {
            bool result = false;

            try
            {
                if (!DicOfUserWebSocket.ContainsKey(uSocket.ClientId))
                {
                    DicOfUserWebSocket.Add(uSocket.ClientId, uSocket);
                }

                result = true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }