コード例 #1
0
        public override void ExecuteCommand(WebSocketSession session, SubRequestInfo requestInfo)
        {
            try
            {
                TestLogger.Log(requestInfo.ToString2());
                var request = requestInfo.ToBaseModel();
                var obj     = JsonHelper.DeserializeJsonToObject <ConnectionModel>(request.Content + "");

                var sessions = MyAppServer.Sessions
                               .Where(s => s.AppSession != null)
                               .ToList();
                sessions.ForEach(s =>
                {
                    if (!string.IsNullOrEmpty(s.DeviceId))
                    {
                        s.SetIdState = SetIdState.HadSet;
                    }
                    else
                    {
                        s.SetIdState = SetIdState.NotSet;
                    }
                });



                var data = sessions.Select(s => new
                {
                    s.Ip,
                    s.DeviceId,
                    s.SetIdState,
                    s.IsThree
                }).ToList();

                string message = "Reply " + JsonHelper.SerializeObject(new SendBaseModel
                {
                    Content = new ReplyModel
                    {
                        Data    = data,
                        Message = Encoding.UTF8.GetBytes("获取成功").ToString(),
                        Success = 1
                    },
                    CommandId = request.CommandId
                });
                TestLogger.Log(message);

                session.Send(message);
            }
            catch (Exception ex)
            {
                TestLogger.Log(ex.Message + "");
            }
        }
コード例 #2
0
ファイル: ChangeAll.cs プロジェクト: hyp-cpp-hcx/SuperServer
 public override void ExecuteCommand(WebSocketSession session, SubRequestInfo requestInfo)
 {
     try
     {
         Logger.Error(requestInfo.ToString2());
         var request = requestInfo.ToBaseModel();
         var obj     = JsonHelper.DeserializeJsonToObject <ChangeAllModel>(request.Content + "");
         if (obj != null)
         {
             MyAppServer.Sessions.Where(s => s.AppSession != null).ToList().ForEach(s =>
             {
                 s.Send("change", request);
             });
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex.Message);
     }
 }
コード例 #3
0
ファイル: Send.cs プロジェクト: hyp-cpp-hcx/SuperServer
        public override void ExecuteCommand(WebSocketSession session, SubRequestInfo requestInfo)
        {
            try
            {
                TestLogger.Log(requestInfo.ToString2());
                var    request    = requestInfo.ToSendModel();
                string firstParam = requestInfo.ToFirstParam();
                var    toSessions = MyAppServer.Sessions;


                if (string.IsNullOrWhiteSpace(firstParam))
                {
                    TestLogger.Log("命令发送错误");
                    return;
                }
                else if (request.Content == null)
                {
                    var toDevice = request.ToDeviceId.ToDeivce();
                    toSessions = toSessions.Where(s => s.DeviceId == toDevice.DeviceId && s.Ip == toDevice.Ip).ToList();
                    toSessions.ForEach(s =>
                    {
                        var message = firstParam + "#";
                        TestLogger.Log(message);
                        s.Send(message);
                    });
                }
                else if (request.Content != null)
                {
                    if (firstParam.ToLower() == "reply") //回复
                    {
                        var fromDevice = request.FromDeviceId.ToDeivce();
                        if (fromDevice != null)
                        {
                            toSessions = toSessions.Where(s => s.DeviceId == fromDevice.DeviceId && s.Ip == fromDevice.DeviceId).ToList();
                        }
                        else
                        {
                            return;
                        }
                    }
                    else //发送
                    {
                        var fromDevice = MyAppServer.Sessions.FirstOrDefault(s => s.SessionId == session.SessionID);
                        if (fromDevice != null)
                        {
                            request.FromDeviceId = fromDevice.Ip + "," + fromDevice.DeviceId;

                            var toDevice = request.ToDeviceId.ToDeivce();
                            toSessions = toSessions.Where(s => s.DeviceId == toDevice.DeviceId && s.Ip == toDevice.Ip).ToList();
                        }
                        else
                        {
                            return;
                        }
                    }

                    toSessions.ForEach(s =>
                    {
                        var message = CommandHelper.GetCmdStr(firstParam, request);
                        TestLogger.Log(message);
                        s.Send(message);
                    });
                }
            }
            catch (Exception ex)
            {
                TestLogger.Log(ex.Message + "");
            }
        }