コード例 #1
0
 /// <summary>
 /// 代理登录
 /// </summary>
 /// <param name="requestMsg">请求参数</param>
 /// <param name="head">报文头</param>
 /// <param name="client">当前连接客户端对象</param>
 /// <returns></returns>
 public string Login(string requestMsg, HeadMessage head, ClientOP client)
 {
     //ComunicationMsg sendMsg = new ComunicationMsg();
     //ErrorMessage error = new ErrorMessage();
     //HeadMessage sendHead = new HeadMessage();
     try
     {
         sendHead.Method = head.Method;
         sendHead.Token  = Guid.NewGuid().ToString().Replace("-", "");
         AgentSearchModel aSearch     = JSON.ToObject <AgentSearchModel>(requestMsg);
         string           responseMsg = "";
         if (aSearch == null)
         {
             error.ErrMsg = "没有接收到登录账号或密码";
             error.ErrNo  = "0003";
         }
         else
         {
             responseMsg = loginDal.Login(aSearch, head, out error);
             if (error.ErrNo == "0000")
             {
                 foreach (KeyValuePair <string, ClientOP> kv in WsSocket.dic_Clients)
                 {
                     if (!string.IsNullOrEmpty(aSearch.A_UserID) && kv.Value.LogName == aSearch.A_UserID)
                     {
                         ErrorMessage outErr = new ErrorMessage();
                         outErr.ErrNo  = "0000";
                         outErr.ErrMsg = "此账号已在别处登录";
                         HeadMessage outHead = new HeadMessage();
                         outHead.Method = "GoOut";
                         ComunicationMsg outSend = new ComunicationMsg();
                         outSend.Head  = JSON.ToJSON(outHead);
                         outSend.Error = JSON.ToJSON(outErr);
                         WsSocket ws = new WsSocket();
                         ws.Send(JSON.ToJSON(outSend), kv.Value.cSocket, true);
                     }
                 }
                 client.LogName = aSearch.A_UserID;
                 client.Token   = sendHead.Token;
                 client.ConTime = DateTime.Now;
                 //将成功登录的客户端添加到字典中
                 WsSocket.dic_Clients.AddOrUpdate(client.ConID, client, (key, oldv) => client);
             }
         }
         sendMsg.Head    = JSON.ToJSON(sendHead);
         sendMsg.Error   = JSON.ToJSON(error);
         sendMsg.Reponse = JSON.ToJSON(new { LoginAgent = string.IsNullOrEmpty(responseMsg) ? "{}" : responseMsg });
         return(JSON.ToJSON(sendMsg));
     }
     catch (Exception ex)
     {
         Common.LogHelper.WriteLog(typeof(LoginBLL), ex);
         error.ErrNo     = "0004";
         error.ErrMsg    = ex.Message.Replace("\r", "").Replace("\n", "");
         sendMsg.Head    = JSON.ToJSON(head);
         sendMsg.Reponse = "{}";
         sendMsg.Error   = JSON.ToJSON(error);
         return(JSON.ToJSON(sendMsg));
     }
 }
コード例 #2
0
    async void IWsServerCallback.OnConnect(WsServer _, WsSocket socket)
    {
        Debug.Log($"Open: {socket.Address}");
        await socket.SendAsync("Hello world!");

        await socket.CloseAsync(System.Net.WebSockets.WebSocketCloseStatus.NormalClosure);

        Debug.Log($"Close: {socket.Address}");
    }
コード例 #3
0
        public string LoginLogic(string requestMsg, HeadMessage head, ClientOP client)
        {
            sendHead.Method = head.Method ?? "";
            error.ErrNo     = "0004";
            try
            {
                AgentSearchModel aSearch     = JSON.ToObject <AgentSearchModel>(requestMsg);
                string           responseMsg = "";
                string           pId;
                if (CommonDAL.IsSubAgent(head.LoginID, out pId))
                {
                    head.LoginID = pId;//如果当前登录代理是子账号则,将此子账号的所属代理ID赋值为当前登录代理ID
                }
                if (aSearch == null)
                {
                    error.ErrMsg = "没有接收到登录账号或密码";
                    error.ErrNo  = "0003";
                }
                else
                {
                    switch (sendHead.Method)
                    {
                    case "Login":
                        sendHead.Token = Guid.NewGuid().ToString().Replace("-", "");
                        responseMsg    = loginDal.Login(aSearch, head, out error);
                        if (error.ErrNo == "0000")
                        {
                            foreach (KeyValuePair <string, ClientOP> kv in WsSocket.dic_Clients)
                            {
                                if (!string.IsNullOrEmpty(aSearch.A_UserID) && kv.Value.LogName == aSearch.A_UserID)
                                {
                                    ErrorMessage outErr = new ErrorMessage();
                                    outErr.ErrNo  = "0000";
                                    outErr.ErrMsg = "此账号已在别处登录";
                                    HeadMessage outHead = new HeadMessage();
                                    outHead.Method = "GoOut";
                                    ComunicationMsg outSend = new ComunicationMsg();
                                    outSend.Head  = JSON.ToJSON(outHead);
                                    outSend.Error = JSON.ToJSON(outErr);
                                    WsSocket ws = new WsSocket();
                                    ws.Send(JSON.ToJSON(outSend), kv.Value.cSocket, true);
                                    ws.closeConnect(kv.Value.cSocket);              //断开之前的连接
                                    ClientOP op;
                                    WsSocket.dic_Clients.TryRemove(kv.Key, out op); //将连接移除字典
                                    break;
                                }
                            }
                            client.LogName = aSearch.A_UserID;
                            client.Token   = sendHead.Token;
                            //将成功登录的客户端添加到字典中
                            WsSocket.dic_Clients.AddOrUpdate(client.ConID, client, (key, oldv) => client);
                        }
                        break;

                    case "GetSelfCenterInfo":
                        responseMsg = loginDal.GetATodayBillCount(aSearch, head, out error);
                        break;

                    case "CenterPlayList":
                        responseMsg = loginDal.GetOnlineClntList(aSearch, head, out error);
                        break;

                    case "GetLoginACount":
                        responseMsg = loginDal.GetACountByDate(aSearch, head, out error);
                        break;

                    case "AgentClientCount":
                        responseMsg = loginDal.GetAClntCount(aSearch, head, out error);
                        break;

                    case "GetAorCAgentData":
                        responseMsg = loginDal.GetAorCAgentData(aSearch, head, out error);
                        break;

                    case "GetAListByID":
                        responseMsg = loginDal.GetAListByID(aSearch, head, out error);
                        break;

                    default:
                        responseMsg = "";
                        break;
                    }
                }
                sendMsg.Head    = JSON.ToJSON(sendHead);
                sendMsg.Error   = JSON.ToJSON(error);
                sendMsg.Reponse = JSON.ToJSON(new { JsonData = (string.IsNullOrEmpty(responseMsg)) ? "{}" : responseMsg });
                return(JSON.ToJSON(sendMsg));
            }
            catch (Exception ex)
            {
                Common.LogHelper.WriteLog(typeof(LoginBLL), ex);
                error.ErrMsg    = ex.Message.Replace("\r", "").Replace("\n", "");
                sendMsg.Head    = JSON.ToJSON(sendHead);
                sendMsg.Reponse = "{}";
                sendMsg.Error   = JSON.ToJSON(error);
                return(JSON.ToJSON(sendMsg));
            }
        }