Ejemplo n.º 1
0
        /// <summary>
        /// 添加地址
        /// </summary>
        /// <returns></returns>
        public async Task <JT808ResultDto <bool> > Add(JT808IPAddressDto jT808IPAddressDto)
        {
            JT808ResultDto <bool> jT808ResultDto = new JT808ResultDto <bool>();

            jT808ResultDto.Code = JT808ResultCode.Ok;
            jT808ResultDto.Data = true;
            if (!channels.ContainsKey(jT808IPAddressDto.EndPoint))
            {
                try
                {
                    IChannel clientChannel = await bootstrap.ConnectAsync(jT808IPAddressDto.EndPoint);

                    channels.TryAdd(jT808IPAddressDto.EndPoint, clientChannel);
                }
                catch (AggregateException ex)
                {
                    jT808ResultDto.Data    = false;
                    jT808ResultDto.Code    = JT808ResultCode.Error;
                    jT808ResultDto.Message = JsonConvert.SerializeObject(ex);
                }
                catch (Exception ex)
                {
                    jT808ResultDto.Data    = false;
                    jT808ResultDto.Code    = JT808ResultCode.Error;
                    jT808ResultDto.Message = JsonConvert.SerializeObject(ex);
                }
            }
            return(jT808ResultDto);
        }
Ejemplo n.º 2
0
        public JT808ResultDto <bool> Add(JT808IPAddressDto jT808IPAddressDto)
        {
            string host = jT808IPAddressDto.EndPoint.ToString();

            return(new JT808ResultDto <bool>()
            {
                Code = JT808ResultCode.Ok, Data = ForwardingRemoteAddresssDict.TryAdd(host, 0)
            });
        }
        /// <summary>
        /// 删除转发过滤地址(不能删除在网关服务器配置文件配的地址)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JT808HttpResponse RemoveTransmitAddress(JT808HttpRequest request)
        {
            if (string.IsNullOrEmpty(request.Json))
            {
                return(EmptyHttpResponse());
            }
            JT808IPAddressDto jT808IPAddressDto = JsonConvert.DeserializeObject <JT808IPAddressDto>(request.Json);

            return(CreateJT808HttpResponse(jT808TransmitAddressFilterService.Remove(jT808IPAddressDto)));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 删除原包转发地址(不能删除在网关服务器配置文件配的地址)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JT808HttpResponse RemoveSourcePackageAddress(JT808HttpRequest request)
        {
            if (string.IsNullOrEmpty(request.Json))
            {
                return(EmptyHttpResponse());
            }
            JT808IPAddressDto jT808IPAddressDto = JsonConvert.DeserializeObject <JT808IPAddressDto>(request.Json);

            return(CreateJT808HttpResponse(jT808SourcePackageChannelService.Remove(jT808IPAddressDto).Result));
        }
        public void Test4()
        {
            var configIp = new JT808IPAddressDto
            {
                Host = "127.0.0.1",
                Port = 6561
            };
            var result2 = jT808TransmitAddressFilterService.Remove(configIp);

            Assert.AreEqual(JT808ResultCode.Ok, result2.Code);
            Assert.IsFalse(result2.Data);
            Assert.AreEqual("不能删除服务器配置的地址", result2.Message);
        }
        public void Test3()
        {
            var ip1 = new JT808IPAddressDto
            {
                Host = "127.0.0.1",
                Port = 12349
            };
            var result1 = jT808TransmitAddressFilterService.Add(ip1);

            Assert.AreEqual(JT808ResultCode.Ok, result1.Code);
            Assert.IsTrue(result1.Data);
            var result2 = jT808TransmitAddressFilterService.Remove(ip1);

            Assert.AreEqual(JT808ResultCode.Ok, result2.Code);
            Assert.IsTrue(result2.Data);
        }
Ejemplo n.º 7
0
        public JT808ResultDto <bool> Remove(JT808IPAddressDto jT808IPAddressDto)
        {
            string host = jT808IPAddressDto.EndPoint.ToString();

            if (jT808ConfigurationOptionsMonitor.CurrentValue.ForwardingRemoteAddress != null &&
                jT808ConfigurationOptionsMonitor.CurrentValue.ForwardingRemoteAddress.Any(w => w.EndPoint.ToString() == host))
            {
                return(new JT808ResultDto <bool>()
                {
                    Code = JT808ResultCode.Ok, Data = false, Message = "不能删除服务器配置的地址"
                });
            }
            else
            {
                return(new JT808ResultDto <bool>()
                {
                    Code = JT808ResultCode.Ok, Data = ForwardingRemoteAddresssDict.TryRemove(host, out var temp)
                });
Ejemplo n.º 8
0
        /// <summary>
        /// 删除地址
        /// </summary>
        /// <returns></returns>
        public async Task <JT808ResultDto <bool> > Remove(JT808IPAddressDto jT808IPAddressDto)
        {
            JT808ResultDto <bool> jT808ResultDto = new JT808ResultDto <bool>();

            jT808ResultDto.Code = JT808ResultCode.Ok;
            jT808ResultDto.Data = true;

            if (jT808ConfigurationOptionsMonitor.CurrentValue.SourcePackageDispatcherClientConfigurations != null &&
                jT808ConfigurationOptionsMonitor.CurrentValue.SourcePackageDispatcherClientConfigurations.Any(a => a.EndPoint.ToString() == jT808IPAddressDto.EndPoint.ToString())
                )
            {
                jT808ResultDto.Data    = false;
                jT808ResultDto.Message = "不能删除服务器配置的地址";
            }
            else
            {
                if (channels.TryRemove(jT808IPAddressDto.EndPoint, out var channel))
                {
                    try
                    {
                        await channel.CloseAsync();
                    }
                    catch (AggregateException ex)
                    {
                        jT808ResultDto.Data    = false;
                        jT808ResultDto.Code    = JT808ResultCode.Error;
                        jT808ResultDto.Message = JsonConvert.SerializeObject(ex);
                    }
                    catch (Exception ex)
                    {
                        jT808ResultDto.Data    = false;
                        jT808ResultDto.Code    = JT808ResultCode.Error;
                        jT808ResultDto.Message = JsonConvert.SerializeObject(ex);
                    }
                }
            }
            return(jT808ResultDto);
        }
Ejemplo n.º 9
0
 public ActionResult <bool> Remove([FromBody] JT808IPAddressDto jT808IPAddressDto)
 {
     return(true);
 }