コード例 #1
0
        public async Task <SessionResponseModel> CreateSesion()
        {
            client       = _clientServices.GetClient();
            requestModel = new SessionRequestModel();

            string useragent = context.Request.Headers["User-Agent"];

            UserAgent ua = new UserAgent(useragent);

            requestModel.type    = 1;
            requestModel.browser = new SessionRequestModel.Browser()
            {
                name = ua.Browser.Name, version = ua.Browser.Version
            };

            if (env.IsDevelopment())
            {
                requestModel.connection = new SessionRequestModel.Connection()
                {
                    ip_address = "145.214.41.21", port = _config.Port
                };
            }
            else
            {
                requestModel.connection = new SessionRequestModel.Connection()
                {
                    ip_address = FindIpAddress().ToString(), port = _config.Port
                };
            }

            var request = new HttpRequestMessage(HttpMethod.Post, "/api/client/getsession");

            var payload = JsonConvert.SerializeObject(requestModel);

            HttpContent content = new StringContent(payload, Encoding.UTF8, "application/json");

            request.Content = content;

            var response = await client.SendAsync(request);

            var resultContent = await response.Content.ReadAsStringAsync();

            SessionResponseModel sessionResponseModel = JsonConvert.DeserializeObject <SessionResponseModel>(resultContent);

            return(sessionResponseModel);
        }
コード例 #2
0
        private static void RunSessionSamples()
        {
            output.AppendLine("\n Session Samples \n");

            var req = new SessionRequestModel
            {
                LockDelay = "30m",
                Name      = "raja-session",
                Checks    = new List <string> {
                    "serfHealth"
                },
                TimeToLive = "29m",
                Node       = Environment.MachineName
            };

            var create = _consulClient.V1.Session.CreateAsync(new ConsulRequest <SessionRequestModel> {
                RequestData = req
            }).Result;

            DisplayJson(create);
            Assert.NotNull(create.Data);

            var reads = _consulClient.V1.Session.ReadAsync(new ConsulRequest <SessionReadModel>
            {
                RequestData = new SessionReadModel
                {
                    SessionId = create.Data
                }
            }).Result;

            DisplayJson(reads);
            Assert.True(reads.Data.Count == 1);
            Assert.True(reads.Data[0].SessionId == create.Data);

            var nodereads = _consulClient.V1.Session.ReadNodeSessionsAsync(new ConsulRequest <NodeSessionReadModel>
            {
                RequestData = new NodeSessionReadModel
                {
                    Node = reads.Data[0].Node
                }
            }).Result;

            DisplayJson(nodereads);
            Assert.True(nodereads.Data.Count == 1);
            Assert.True(nodereads.Data[0].SessionId == create.Data);

            var allsessions = _consulClient.V1.Session.ListAsync().Result;

            DisplayJson(allsessions);
            Assert.True(allsessions.Data.Count == 1);
            Assert.True(allsessions.Data[0].SessionId == create.Data);

            var renew = _consulClient.V1.Session.RenewAsync(new ConsulRequest <RenewSessionRequestModel>
            {
                RequestData = new RenewSessionRequestModel
                {
                    SessionId = create.Data
                }
            }).Result;

            DisplayJson(renew);
            Assert.True(renew.Data.Count == 1);
            Assert.True(renew.Data[0].SessionId == create.Data);

            var delete = _consulClient.V1.Session.DeleteAsync(new ConsulRequest <SessionDeleteModel>
            {
                RequestData = new SessionDeleteModel
                {
                    SessionId = create.Data
                }
            }).Result;

            DisplayJson(delete);
            Assert.True(delete.Data);
        }