/// <summary> /// 接收到请求的处理 /// </summary> /// <param name="info"></param> private void client_OnMsgReceived(byte[] info) { SocketRequest requestMsg = ByteSerializer.DeserializeByte <SocketMsgBase>(info) as SocketRequest; if (requestMsg != null) { Console.WriteLine("子系统{0}请求执行{1}方法", requestMsg.SubSystem, requestMsg.RequestMethod); SocketResponse response = new SocketResponse(); string result = string.Empty; try { result = OperationFactory.Execute(requestMsg.Parameters, requestMsg.RequestMethodType); response.Result = result; } catch (Exception ex) { response.ErrorMsg = "执行遇到异常"; } response.MethodName = requestMsg.MethodName; response.Sender = requestMsg.Target; response.SubSystem = requestMsg.SubSystem; response.Target = requestMsg.Sender; response.MsgType = TcpMsgDataType.Relay; client.Send(ByteSerializer.ObjectToByte(response)); Console.WriteLine("执行成功,已返回结果"); } }
public void HandleMessage(object sender, SocketResponse ex) { if (ex.isChatMessage && chatCommands.ContainsKey(ex.messageText.ToLower())) { chatCommands[ex.messageText.ToLower()].Invoke(); } }
public override void HandleSocketResponse(SocketResponse socketResponse) { string action = socketResponse.p2; switch (action) { case "seatWatch": RenderResponse(socketResponse); break; } }
void client_OnMsgReceived(byte[] info) { try { response = SeatManage.SeatManageComm.ByteSerializer.DeserializeByte <SocketResponse>(info); autoConnectEvent.Set(); } catch (Exception ex) { isError = true; } }
/// <summary> /// Method called by socket.On("message") Event /// </summary> /// <param name="e"> SocketIOEvent </param> private void socketMessage(SocketIOEvent e) { SocketResponse res = new SocketResponse(); // Serialize socket answer to object res = JsonUtility.FromJson <SocketResponse> (e.data.ToString()); //Debug.Log("Get Socket message: " + res.nodeId + "-" + res.value); // Save value in databse if (istNodeIds.NodeIdToTag.ContainsKey(res.nodeId)) { if (database.ModuleDatabase [istNodeIds.NodeIdToTag [res.nodeId].Module].ContainsKey(istNodeIds.NodeIdToTag [res.nodeId].Core)) { database.ModuleDatabase [istNodeIds.NodeIdToTag [res.nodeId].Module][istNodeIds.NodeIdToTag [res.nodeId].Core].SetNewIstWert(res.value); } else // possible submoduls { foreach (KeyValuePair <string, DeviceGUI> entry in database.ModuleDatabase[istNodeIds.NodeIdToTag [res.nodeId].Module]) { if (entry.Value.Submodule) { entry.Value.SetNewIstWert(res); } } } } /*if (istNodeIds.NodeIdToTag [res.nodeId].Core.EndsWith ("_O") || istNodeIds.NodeIdToTag [res.nodeId].Core.EndsWith ("_G")) { * // Special case valve * string tag = istNodeIds.NodeIdToTag [res.nodeId].Core.Substring(0, (istNodeIds.NodeIdToTag [res.nodeId].Core.Length - 2)); * * // Storre the new value * if (istNodeIds.NodeIdToTag [res.nodeId].Core.EndsWith ("_O")) { * database.ModuleDatabase [istNodeIds.NodeIdToTag [res.nodeId].Module] [tag].OPCUA_data._Offen = database.stringToBool(res.value); * } else { * database.ModuleDatabase [istNodeIds.NodeIdToTag [res.nodeId].Module] [tag].OPCUA_data._Geschlossen = database.stringToBool(res.value); * } * // Evaluate the new valve value * database.evaluationValve(database.ModuleDatabase[istNodeIds.NodeIdToTag[res.nodeId].Module][tag]); * * Debug.Log("Special Case Ventile! New value stored! " + database.ModuleDatabase[istNodeIds.NodeIdToTag[res.nodeId].Module][tag].OPCUA_data.Value); * } else { * if (istNodeIds.NodeIdToTag[res.nodeId].Core.StartsWith("V")) { * if (database.stringToBool(res.value)) { * database.ModuleDatabase [istNodeIds.NodeIdToTag [res.nodeId].Module] [tag].OPCUA_data.Value = "Open"; * } else { * database.ModuleDatabase [istNodeIds.NodeIdToTag [res.nodeId].Module] [tag].OPCUA_data.Value = "Closed"; * } * } * // Normal case. Just write value to Database * database.ModuleDatabase [istNodeIds.NodeIdToTag[res.nodeId].Module][istNodeIds.NodeIdToTag[res.nodeId].Core].OPCUA_data.Value = res.value; * Debug.Log ("Get new Value from subscriptions. Write new value >" + res.value + "< to >" + database.ModuleDatabase[istNodeIds.NodeIdToTag[res.nodeId].Module][istNodeIds.NodeIdToTag [res.nodeId].Core].Tag + "<"); * }*/ }
private void OnAuth(SocketResponse auth) { if (auth.Result.ToLowerInvariant() == "ok") { _client.StartFeed().Wait(); RequestRequirements().Wait(); } else { Log.Error("Socket Client Auth Error {0}", auth.Error); } }
/// <summary> /// Save new value in the spezific subdevie. Overrides the function in parent class. /// </summary> /// <param name="response">The SocketIO subscription response.</param> public override void SetNewIstWert(SocketResponse response) { // loop through dictinary foreach (KeyValuePair <string, Device> entry in subDevices) { if (entry.Value.IstWert.Nodeid == response.nodeId) { // Found the device. Safe the new value. entry.Value.IstWert.setValue(response.value); // TODO: break? } } }
void RenderResponse(SocketResponse socketResponse) { SeatWatch watch = Convert(socketResponse); if (!ValidateSeatWatch(watch)) { ShowMessage(ErrorCode.EC_GAME_INVALID_DATA); } else { GetComponent <GameUIRender>().SendMessage("RenderWatch", watch); } }
/// <summary> /// 读者更换座位 /// </summary> /// <param name="cardNo"></param> /// <param name="seatNum"></param> /// <param name="readingRoomNum"></param> /// <returns></returns> public string ChangeSeat(string cardNo, string seatNum, string readingRoomNum) { try { lock (this.client) { client.Connect(); request = new SocketRequest(); request.MethodName = "ChangeSeat"; request.Parameters.Add(cardNo); request.Parameters.Add(seatNum); request.Parameters.Add(readingRoomNum); request.SubSystem = TcpSeatManageSubSystem.WeiXinSeatBespeak; request.Target = schoolNum; request.MsgType = TcpMsgDataType.Relay; if (request != null) { client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request)); Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.MethodName); } autoConnectEvent.WaitOne(20000); if (response == null) { throw new Exception("连接超时。"); } else if (!isError && response.MethodName.Equals("ChangeSeat") && string.IsNullOrEmpty(response.ErrorMsg)) { return(response.Result.ToString()); } else if (!string.IsNullOrEmpty(response.ErrorMsg)) { throw new Exception(response.ErrorMsg); } else { return(null); } } } catch (Exception ex) { throw ex; } finally { client.Disconnect(); request = null; response = null; } }
private async Task WriteResponseAsync(NetworkStream stream, SocketResponse response) { var responseString = Json.ToJson(response); var responseBuffer = Encoding.UTF8.GetBytes(responseString); var responseLengthBuffer = BitConverter.GetBytes((uint)responseBuffer.Length); await stream.WriteAsync(responseLengthBuffer, 0, responseLengthBuffer.Length); await stream.WriteAsync(responseBuffer, 0, responseBuffer.Length); #if DEBUG Debug.WriteLine($"TcpSocketServer responded:\n {responseString}"); #endif }
public bool UpdateBookLogsState(int bookNo) { // AsyncTcpClient.AsyncTcpClient client = new AsyncTcpClient.AsyncTcpClient(ip.IP, ip.Port); try { lock (this.client) { client.Connect(); request = new SocketRequest(); request.MethodName = "UpdateBookLogsState"; request.Parameters.Add(bookNo); request.SubSystem = TcpSeatManageSubSystem.WeiXinSeatBespeak; request.Target = schoolNum; request.MsgType = TcpMsgDataType.Relay; if (request != null) { client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request)); Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.MethodName); } autoConnectEvent.WaitOne(20000); if (response == null) { throw new Exception("连接超时。"); } else if (!isError && response.MethodName.Equals("UpdateBookLogsState") && string.IsNullOrEmpty(response.ErrorMsg)) { return((bool)response.Result); } else if (!string.IsNullOrEmpty(response.ErrorMsg)) { throw new Exception(response.ErrorMsg); } else { return(false); } } } catch (Exception ex) { throw ex; } finally { client.Disconnect(); request = null; response = null; } }
public SeatManage.ClassModel.ReaderInfo CheckAndGetReaderInfo(UserInfo user) { try { lock (this.client) { client.Connect();//连接 request = new SocketRequest(); request.MethodName = "CheckAndGetReaderInfo"; request.Parameters.Add(user); request.SubSystem = TcpSeatManageSubSystem.WeiXinSeatBespeak; request.Target = schoolNum; request.MsgType = TcpMsgDataType.Relay; if (request != null) { client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request)); Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.MethodName); } autoConnectEvent.WaitOne(20000); if (response == null) { throw new Exception("连接超时。"); } else if (!isError && response.MethodName.Equals("CheckAndGetReaderInfo") && string.IsNullOrEmpty(response.ErrorMsg)) { return(response.Result as ReaderInfo); } else if (!string.IsNullOrEmpty(response.ErrorMsg)) { throw new Exception(response.ErrorMsg); } else { return(null); } } } catch (Exception ex) { throw ex; } finally { request = null; response = null; client.Disconnect(); } }
void OnServerDisconnect(Socket socket, Packet packet, params object[] args) { #if DEBUG #if UNITY_EDITOR if (GlobalGameManager.instance.CanDebugThis(SocketEvetns.DISCONNECT)) { Debug.Log("Enter in OnServerDisconnect Time = " + System.DateTime.Now); } #else Debug.Log("Enter in OnServerDisconnect Time = " + System.DateTime.Now); #endif #endif SocketResponse response = new SocketResponse(); response.eventType = SocketEvetns.DISCONNECT; socketResponse.Add(response); }
/// <summary> /// OnSocket response received /// </summary> /// <param name="response"></param> private void OnSocketResponseReceived(SocketResponse response) { switch (response.socketResponseType) { case GameVariables.SocketResponseType.onRoomJoin: OnRoomJoin((OnRoomJoinResponse)response); break; case GameVariables.SocketResponseType.userRoomJoin: UserRoomJoin((UserRoomJoinResponse)response); break; case GameVariables.SocketResponseType.gameStart: GameStart((GameStartResponse)response); break; case GameVariables.SocketResponseType.cardDrawRes: OncardDraw((CardDrawRes)response); break; case GameVariables.SocketResponseType.cardDiscardRes: OnCardDiscard((CardDiscardResResponse)response); break; case GameVariables.SocketResponseType.playerLeftRes: OnPlayerLeft((PlayerLeftResResponse)response); break; case GameVariables.SocketResponseType.roundComplete: OnRoundComplete((RoundCompleteResponse)response); break; case GameVariables.SocketResponseType.declareRes: OnDeclarePlayer((DeclarResponse)response); break; case GameVariables.SocketResponseType.dropRes: OnPlayerDrop((DropResponse)response); break; case GameVariables.SocketResponseType.roomStateRes: OnRoomStatusResponse((RoomStatusResponse)response); break; case GameVariables.SocketResponseType.handValidateRes: OnGroupValidationResponse((GroupValidationResponse)response); break; case GameVariables.SocketResponseType.changeTurn: OnPlayerTurmChangeResponse((PlayerTurnResponse)response); break; case GameVariables.SocketResponseType.roomClose: OnRoomClose((RoomCloseResponse)response); break; case GameVariables.SocketResponseType.matchComplete: OnMatchComplete((MatchCloseResponse)response); break; } }
public Dictionary <string, ReadingRoomSeatUsedState_Ex> GetAllRoomSeatUsedState() { try { lock (this.client) { client.Connect(); request = new SocketRequest(); request.MethodName = "GetAllRoomSeatUsedState"; request.SubSystem = TcpSeatManageSubSystem.WeiXinSeatBespeak; request.Target = schoolNum; request.MsgType = TcpMsgDataType.Relay; if (request != null) { client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request)); Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.MethodName); } autoConnectEvent.WaitOne(20000); if (response == null) { throw new Exception("连接超时。"); } else if (!isError && response.MethodName.Equals("GetAllRoomSeatUsedState") && string.IsNullOrEmpty(response.ErrorMsg)) { return(response.Result as Dictionary <string, ReadingRoomSeatUsedState_Ex>); } else if (!string.IsNullOrEmpty(response.ErrorMsg)) { throw new Exception(response.ErrorMsg); } else { return(null); } } } catch (Exception ex) { throw ex; } finally { client.Disconnect(); request = null; response = null; } }
/// <summary> /// 发送请求的数据包 /// </summary> /// <param name="request"></param> /// <returns></returns> private string CallService(SocketRequest request) { try { lock (this.client) { SocketConnect(0); request.SubSystem = TcpSeatManageSubSystem.AndroidApp; request.Target = schoolNum; request.MsgType = TcpMsgDataType.Relay; client.Send(SeatManage.SeatManageComm.ByteSerializer.ObjectToByte(request)); Console.WriteLine("请求客户端{0}执行{1}方法已发送,等待返回结果…", request.Target, request.RequestMethodType); autoConnectEvent.WaitOne(20000); if (response == null) { throw new Exception("连接超时。"); } else if (!isError && string.IsNullOrEmpty(response.ErrorMsg)) { return(response.Result as string); } else if (!string.IsNullOrEmpty(response.ErrorMsg)) { throw new Exception(response.ErrorMsg); } else { return(null); } } } catch (Exception ex) { throw ex; } finally { request = null; response = null; client.Disconnect(); } }
// LISTNER_METHODS --------------------------------------------------------------------------------------------------------------------------------------------------------- #region LISTNER_METHODS void OnPlayerObjectFound(Socket socket, Packet packet, params object[] args) { string responseText = JsonMapper.ToJson(args); #if DEBUG #if UNITY_EDITOR if (GlobalGameManager.instance.CanDebugThis(SocketEvetns.PLAYER_OBJECT)) { Debug.Log("OnPlayerObjectFound = " + responseText + " Time = " + System.DateTime.Now); } #else Debug.Log("OnPlayerObjectFound = " + responseText + " Time = " + System.DateTime.Now); #endif #endif SocketResponse response = new SocketResponse(); response.eventType = SocketEvetns.PLAYER_OBJECT; response.data = responseText; socketResponse.Add(response); }
void OnCardDistributeTimerFound(Socket socket, Packet packet, params object[] args) { string responseText = JsonMapper.ToJson(args); #if DEBUG #if UNITY_EDITOR if (GlobalGameManager.instance.CanDebugThis(SocketEvetns.ON_CARD_DISTRIBUTE_TIMER_FOUND)) { Debug.Log("OnCardDistributeTimerFound = " + responseText + " Time = " + System.DateTime.Now); } #else Debug.Log("OnCardDistributeTimerFound = " + responseText + " Time = " + System.DateTime.Now); #endif #endif SocketResponse response = new SocketResponse(); response.eventType = SocketEvetns.ON_CARD_DISTRIBUTE_TIMER_FOUND; response.data = responseText; socketResponse.Add(response); }
void MatchHistory(Socket socket, Packet packet, params object[] args) { string responseText = JsonMapper.ToJson(args); #if DEBUG #if UNITY_EDITOR if (GlobalGameManager.instance.CanDebugThis(SocketEvetns.ON_MATCH_HISTORY_FOUND)) { Debug.Log("MatchHistory = " + responseText + " Time = " + System.DateTime.Now); } #else Debug.Log("MatchHistory = " + responseText + " Time = " + System.DateTime.Now); #endif #endif SocketResponse response = new SocketResponse(); response.eventType = SocketEvetns.ON_MATCH_HISTORY_FOUND; response.data = responseText; socketResponse.Add(response); }
private void OnMessageReceived(WebSocket webSocket, string message) { RKLog.Log("OnMessageReceived: " + message, "socketcontroller"); SocketResponse data = JsonUtility.FromJson <SocketResponse>(message); GenericData gd = new GenericData(); foreach (ResponseStringList item in data.data) { gd.Set(item.key, item.value); } RKLog.Log("invoke: " + gd.ToString(), "socketcontroller"); MessageReceived.Invoke(data.type, gd); if (data.type == "update") { RKLog.Log("onmessagereceived, update: " + gd.ToString() + " dus poll", "socketcontroller"); } }
void OnSentEmoji(Socket socket, Packet packet, params object[] args) { #if DEBUG Debug.Log("OnOtherSeeEmoji -CALL = " + System.DateTime.Now); #endif string responseText = JsonMapper.ToJson(args); #if DEBUG #if UNITY_EDITOR if (GlobalGameManager.instance.CanDebugThis(SocketEvetns.ON_RECONNECTED)) { Debug.Log("OnOtherSeeEmoji -CALL = " + responseText + " Time = " + System.DateTime.Now); } #else Debug.Log("OnReconnected = " + responseText + " Time = " + System.DateTime.Now); #endif #endif SocketResponse response = new SocketResponse(); response.eventType = SocketEvetns.ON_CARD_DISTRIBUTE_TIMER_FOUND; response.data = responseText; socketResponse.Add(response); }
/// <summary> /// 转发socket消息 , /// </summary> /// <param name="uid">请求的目标ID。</param> /// <param name="msg">如果msg类型为Request,即客户端请求学校,需要转发给学校。否则为学校响应客户端的请求。</param> private void RelaySocketMsg(string uid, SocketMsgBase msg) { try { msg.Sender = uid; if (schoolNums.ContainsKey(msg.Target)) { server.Send(schoolNums[msg.Target], ByteSerializer.ObjectToByte(msg)); Console.WriteLine("{0:M} {1:t}:转发给目标{2},地址为:{3}", DateTime.Now, DateTime.Now, msg.Target, schoolNums[msg.Target]); } else { if (msg is SocketRequest) { Console.WriteLine("{0:M} {1:t}:请求的目标{2}不存在", DateTime.Now, DateTime.Now, msg.Target); SocketResponse response = new SocketResponse(); response.SubSystem = msg.SubSystem; response.MethodName = msg.MethodName; response.Sender = response.Target; response.Target = response.Sender; response.ErrorMsg = "学校没有连接"; server.Send(uid, ByteSerializer.ObjectToByte(response)); } else if (msg is SocketResponse) { // Console.WriteLine("消息回复给{0}", msg.Target); Console.WriteLine("{0:M} {1:t}:消息回复给{2}", DateTime.Now, DateTime.Now, msg.Target); server.Send(msg.Target, ByteSerializer.ObjectToByte(msg)); } } } catch (Exception ex) { WriteLog.Write(string.Format("RelaySocketMsg执行遇到异常:{0},异常来自:{1}", ex.Message, ex.Source)); } }
void LogResponse(object sender, SocketResponse ex) { Log(ex.Payload.ToString()); }
static void Main(string[] args) { Console.WriteLine("Starting: Creating Socket Objeot"); int port = 8080;//服务器端口号 //string host = "192.168.1.103";//服务器IP地址 string host = "10.3.0.1";//服务器IP地址 Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket类 listener.Bind(new IPEndPoint(IPAddress.Parse(host), port));//绑定8080端口 listener.Listen(10);//开始监听 while (true) { Console.WriteLine("Waiting for connection on port 8080"); string recvStr = string.Empty; Socket socket = listener.Accept();//为新建连接创建新的Socket。 while (true) { byte[] recvBytes = new byte[1024]; int numBytes = socket.Receive(recvBytes); Console.WriteLine("Receiving ..."); recvStr += Encoding.UTF8.GetString(recvBytes, 0, numBytes); if (recvStr.IndexOf("[FINAL]") > -1) { recvStr = recvStr.Replace("[FINAL]", ""); break; } } //Console.WriteLine("Received string: {0}", recvStr);//接受到的数据打印出来 //反序列化收到的字符串为JSON对象 SocketRequest request = null; JavaScriptSerializer jss = new JavaScriptSerializer(); request = jss.Deserialize(recvStr, typeof(SocketRequest)) as SocketRequest; Console.WriteLine(recvStr); var Option = request.Op; if (Option.Equals("Login")) { Dictionary<string, object> UserData = (Dictionary<string, object>)request.RequestData; string UserName = UserData["Username"].ToString(); string PassWord = UserData["Password"].ToString(); Console.WriteLine("Op: {0}; Username: {1}; Password: {2}", Option, UserName, PassWord); //检查是否有该用户及其密码是否匹配 var dbcon = new SqlConnection(SqlConLoc); var dbcommand = dbcon.CreateCommand(); dbcommand.CommandText = "SELECT Password, AprvCon, UpldCon, RealName, Company, Email, Description FROM UserInfoTable WHERE Username = '******'"; dbcon.Open(); SqlDataReader dbreader = dbcommand.ExecuteReader(); /* while (dbreader.Read()) { Console.WriteLine("User: {0}; Password: {1}", dbreader[0].ToString(), dbreader[1].ToString()); } */ if (dbreader.Read()) { if (PassWord.Equals(dbreader[0].ToString())) { //验证成功 返回用户数据 //待审批列表 LoginResponse loginresp = new LoginResponse(); string aprvconlist = dbreader[1].ToString(); string upldconlist = dbreader[2].ToString(); string realname = dbreader[3].ToString(); string company = dbreader[4].ToString(); string email = dbreader[5].ToString(); string description = dbreader[6].ToString(); Console.WriteLine("{0}, {1}", aprvconlist, upldconlist); dbreader.Close(); if (aprvconlist.Length > 0) { string[] ConList = aprvconlist.Split(new Char[] { ';' }); Contract[] AprvConListArray = new Contract[ConList.Length]; int sum = 0; foreach (string con in ConList) { dbcommand.CommandText = "SELECT * FROM ContractTable WHERE Id = " + con; var dbreader_con = dbcommand.ExecuteReader(); while (dbreader_con.Read()) { //Console.WriteLine("{0}, {1}, {2}", dbreader_con[1].ToString(), dbreader_con[2].ToString(), dbreader_con[3].ToString()); var contract = new Contract(); contract.id = int.Parse(dbreader_con[0].ToString()); contract.title = dbreader_con[1].ToString(); contract.author = dbreader_con[2].ToString(); contract.status = int.Parse(dbreader_con[3].ToString()); contract.sum = int.Parse(dbreader_con[4].ToString()); contract.content = dbreader_con[5].ToString(); contract.time = dbreader_con[6].ToString(); contract.number = dbreader_con[7].ToString(); contract.category = dbreader_con[8].ToString(); contract.proname = dbreader_con[9].ToString(); contract.pronum = dbreader_con[10].ToString(); contract.goodname = dbreader_con[11].ToString(); contract.goodnum = dbreader_con[12].ToString(); contract.sum_cat = dbreader_con[13].ToString(); contract.payment = dbreader_con[14].ToString(); contract.rate = dbreader_con[15].ToString(); contract.signname = dbreader_con[16].ToString(); contract.dealname = dbreader_con[17].ToString(); contract.period = dbreader_con[18].ToString(); contract.site = dbreader_con[19].ToString(); contract.punish = dbreader_con[20].ToString(); contract.ps = dbreader_con[21].ToString(); contract.comment = dbreader_con[22].ToString(); AprvConListArray[sum] = contract; sum++; } dbreader_con.Close(); } loginresp.AprvConList = AprvConListArray; } if (upldconlist.Length > 0) { //上传列表 string[] ConList_upld = upldconlist.Split(new Char[] { ';' }); Contract[] UpldConListArray = new Contract[ConList_upld.Length]; int sum = 0; foreach (string con in ConList_upld) { dbcommand.CommandText = "SELECT * FROM ContractTable WHERE Id =" + con; //Console.WriteLine(dbcommand.CommandText); var dbreader_con_upld = dbcommand.ExecuteReader(); while (dbreader_con_upld.Read()) { //Console.WriteLine("{0}, {1}, {2}", dbreader_con_upld[1].ToString(), dbreader_con_upld[2].ToString(), dbreader_con_upld[3].ToString()); var contract = new Contract(); contract.id = int.Parse(dbreader_con_upld[0].ToString()); contract.title = dbreader_con_upld[1].ToString(); contract.author = dbreader_con_upld[2].ToString(); contract.status = int.Parse(dbreader_con_upld[3].ToString()); contract.sum = int.Parse(dbreader_con_upld[4].ToString()); contract.content = dbreader_con_upld[5].ToString(); contract.time = dbreader_con_upld[6].ToString(); contract.number = dbreader_con_upld[7].ToString(); contract.category = dbreader_con_upld[8].ToString(); contract.proname = dbreader_con_upld[9].ToString(); contract.pronum = dbreader_con_upld[10].ToString(); contract.goodname = dbreader_con_upld[11].ToString(); contract.goodnum = dbreader_con_upld[12].ToString(); contract.sum_cat = dbreader_con_upld[13].ToString(); contract.payment = dbreader_con_upld[14].ToString(); contract.rate = dbreader_con_upld[15].ToString(); contract.signname = dbreader_con_upld[16].ToString(); contract.dealname = dbreader_con_upld[17].ToString(); contract.period = dbreader_con_upld[18].ToString(); contract.site = dbreader_con_upld[19].ToString(); contract.punish = dbreader_con_upld[20].ToString(); contract.ps = dbreader_con_upld[21].ToString(); contract.comment = dbreader_con_upld[22].ToString(); UpldConListArray[sum] = contract; sum++; } dbreader_con_upld.Close(); } loginresp.UpldConList = UpldConListArray; } //个人信息 loginresp.RealName = realname; loginresp.Company = company; loginresp.Description = description; loginresp.Email = email; //给客户端回复数据 var response = new SocketResponse { Op = "Correct", ResultData = (object)loginresp }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); Console.WriteLine(replyString); socket.Send(replyMessage); } else { var response = new SocketResponse { Op = "Wrong", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); socket.Send(replyMessage); } } else { var response = new SocketResponse { Op = "Wrong", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); socket.Send(replyMessage); } dbcon.Close(); } else if (Option.Equals("UpdateAprvResult")) { //用审批结果更新contract表 Dictionary<string, object> UserData = (Dictionary<string, object>)request.RequestData; string Comment = UserData["Comment"].ToString(); string Result = UserData["Result"].ToString(); string ContractId = UserData["ContractId"].ToString(); Console.WriteLine("Op: {0}; Result: {1}; Comment: {2}", Option, Result, Comment); var dbcon = new SqlConnection(SqlConLoc); var dbcommand = dbcon.CreateCommand(); dbcommand.CommandText = "UPDATE ContractTable SET Status = " + Result + ", Comment = '" + Comment + "' WHERE Id = " + ContractId; dbcon.Open(); int count = dbcommand.ExecuteNonQuery(); if (count > 0) { var response = new SocketResponse { Op = "Correct", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); socket.Send(replyMessage); } else { var response = new SocketResponse { Op = "Wrong", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); socket.Send(replyMessage); } dbcon.Close(); } else if (Option.Equals("Upload")) { Dictionary<string, object> UserData = (Dictionary<string, object>)request.RequestData; string SignName = UserData["signname"].ToString(); string Author = UserData["author"].ToString(); Console.WriteLine("Op: {0}; Author: {1}; SignName: {2}", Option, Author, SignName); //检查是否待审批用户是否存在 var dbcon = new SqlConnection(SqlConLoc); var dbcommand = dbcon.CreateCommand(); dbcommand.CommandText = "SELECT AprvCon FROM UserInfoTable WHERE Username = '******'"; dbcon.Open(); SqlDataReader dbreader = dbcommand.ExecuteReader(); if (dbreader.Read()) { string aprvconlist = dbreader[0].ToString(); //Console.WriteLine("{0}, {1}", aprvconlist, upldconlist); dbreader.Close(); //验证成功 新建合同 dbcommand.CommandText = "SELECT Id FROM ContractTable"; var dbreader_id = dbcommand.ExecuteReader(); int NewId = 0; while (dbreader_id.Read()) NewId++; dbreader_id.Close(); string sql = "INSERT INTO ContractTable VALUES(" + NewId.ToString() + ", "; sql += "'" + UserData["title"].ToString() + "', "; sql += "'" + Author + "', "; sql += "0, "; sql += UserData["sum"].ToString() + ", "; sql += "'" + UserData["content"].ToString() + "', "; sql += "'" + UserData["date"].ToString() + "', "; sql += "'" + UserData["connum"].ToString() + "', "; sql += "'" + UserData["cat"].ToString() + "', "; sql += "'" + UserData["proname"].ToString() + "', "; sql += "'" + UserData["pronum"].ToString() + "', "; sql += "'" + UserData["goodname"].ToString() + "', "; sql += "'" + UserData["goodnum"].ToString() + "', "; sql += "'" + UserData["sumcat"].ToString() + "', "; sql += "'" + UserData["payment"].ToString() + "', "; sql += "'" + UserData["rate"].ToString() + "', "; sql += "'" + SignName + "', "; sql += "'" + Author + "', "; sql += "'" + UserData["period"].ToString() + "', "; sql += "'" + UserData["site"].ToString() + "', "; sql += "'" + UserData["punish"].ToString() + "', "; sql += "'" + UserData["ps"].ToString() + "', "; sql += "'')"; dbcommand.CommandText = sql; int flag = dbcommand.ExecuteNonQuery(); if (flag > 0) { //更新待审批人信息 aprvconlist += ";" + NewId.ToString(); dbcommand.CommandText = "UPDATE UserInfoTable SET AprvCon = '" + aprvconlist + "' WHERE Username = '******'"; dbcommand.ExecuteNonQuery(); //更新上传者信息 dbcommand.CommandText = "SELECT UpldCon FROM UserInfoTable WHERE Username = '******'"; SqlDataReader dbreader_au = dbcommand.ExecuteReader(); dbreader_au.Read(); string upldconlist = dbreader_au[0].ToString(); dbreader_au.Close(); upldconlist += ";" + NewId.ToString(); dbcommand.CommandText = "UPDATE UserInfoTable SET UpldCon = '" + upldconlist + "' WHERE Username = '******'"; dbcommand.ExecuteNonQuery(); //给客户端回复数据 var response = new SocketResponse { Op = "Correct", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); Console.WriteLine(replyString); socket.Send(replyMessage); } } else { //SignName有问题 var response = new SocketResponse { Op = "Wrong", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); socket.Send(replyMessage); } dbcon.Close(); } else if (Option.Equals("NewUser")) { Dictionary<string, object> UserData = (Dictionary<string, object>)request.RequestData; string UserName = UserData["username"].ToString(); Console.WriteLine("Op: {0}; UserName: {1};", Option, UserName); //检查用户名是否存在 var dbcon = new SqlConnection(SqlConLoc); var dbcommand = dbcon.CreateCommand(); dbcommand.CommandText = "SELECT Id FROM UserInfoTable WHERE Username = '******'"; dbcon.Open(); SqlDataReader dbreader = dbcommand.ExecuteReader(); if (dbreader.Read()) { dbreader.Close(); //Username已被注册 var response = new SocketResponse { Op = "Wrong", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); socket.Send(replyMessage); } else { dbreader.Close(); //验证成功 新建用户 dbcommand.CommandText = "SELECT Id FROM UserInfoTable"; var dbreader_uid = dbcommand.ExecuteReader(); int NewId = 0; while (dbreader_uid.Read()) NewId++; dbreader_uid.Close(); string sql = "INSERT INTO UserInfoTable VALUES(" + NewId.ToString() + ", "; sql += "'" + UserName + "', "; sql += "'" + UserData["password"].ToString() + "', "; sql += "'0', "; sql += "'0', "; sql += "'" + UserData["realname"].ToString() + "', "; sql += "'" + UserData["company"].ToString() + "', "; sql += "'" + UserData["email"].ToString() + "', "; sql += "'" + UserData["description"].ToString() + "')"; dbcommand.CommandText = sql; int flag = dbcommand.ExecuteNonQuery(); if (flag > 0) { //给客户端回复数据 var response = new SocketResponse { Op = "Correct", ResultData = null }; string replyString = jss.Serialize(response) + "\n"; byte[] replyMessage = Encoding.UTF8.GetBytes(replyString); Console.WriteLine(replyString); socket.Send(replyMessage); } } dbcon.Close(); } } listener.Close(); }
private void ClientOnEventReset(SocketResponse <Event> data) { _logger.LogInformation(data.ToJson()); }
private void ClientOnEventSettle(SocketResponse <OutcomeSettle[]> data) { _logger.LogInformation(data.ToJson()); }
private void OnUpdateResult(SocketResponse <UpdateResult> data) { _logger.LogInformation(data.ToJson()); }
private void OnTournament(SocketResponse <Tournament[]> data) { _logger.LogInformation(data.ToJson()); }
private void OnTimerSet(SocketResponse <TimerSet> data) { _logger.LogInformation(data.ToJson()); }
private void OnSport(SocketResponse <Sport[]> data) { _logger.LogInformation(data.ToJson()); }
private void OnUpdate(SocketResponse <Event> data) { _logger.LogInformation(data.ToJson()); }