public bool ReadToObject(string json) { bool isJsonData = false; BaseSocketData readData = JSONConvert.JsonToObject <BaseSocketData>(json); if (readData != null) { this.Pid = readData.Pid; this.Data = readData.Data; isJsonData = true; } return(isJsonData); }
public LocalSessionManager() { Receive <BaseSocketData>(command => { if (command.Pid.Equals(WSMsg.LoginInfo)) { LoginInfo loginInfo = JSONConvert.JsonToObject <LoginInfo>(command.Data); if (loginInfo != null) { // 인증된 사용자만이 채팅방 개설가능.... if (loginInfo.session.Channel.Contains("test") && loginInfo.session.ClientId.Contains("psmon")) { string SessionKey = $"{loginInfo.session.Channel}_{loginInfo.session.ClientId}"; SessionSockInfo sessionSock = new SessionSockInfo { Session = loginInfo.session, SockID = command.SocketId, SockHandeler = command.SocketHandler as CSChatHandler }; if (sessionList.ContainsKey(SessionKey)) { SessionSockInfo sesionSocket = GetSockInfo(SessionKey); sesionSocket.SockHandeler.SendMessageAsync(sesionSocket.SockID, "duplicated login - logout"); } AddSockInfo(SessionKey, sessionSock).SockHandeler.SendMessageAsync(command.SocketId, "auth-OK"); } } } else if (command.Pid.Equals(WSMsg.DisconnectInfo)) { } }); Receive <UserChatData>(command => { string SessionKey = $"{command.Session.Channel }_{command.Session.ClientId}"; if (sessionList.ContainsKey(SessionKey)) { SessionSockInfo sesionSocket = GetSockInfo(SessionKey); sesionSocket.SockHandeler.SendMessageAsync(sesionSocket.SockID, command.Message); } }); }