public void Test2()
        {
            // 心跳会话包
            JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789012");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));

            // 文本信息包
            JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create("123456789012", new JT808_0x8300
            {
                TextFlag = 5,
                TextInfo = "smallchi 518"
            });
            var data = JT808Serializer.Serialize(jT808Package2);

            JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto();

            jT808UnificationSendRequestDto.TerminalPhoneNo = "123456789012";
            jT808UnificationSendRequestDto.Data            = data;

            HttpClient httpClient = new HttpClient();
            // 调用内置的http服务接收文本信息下发
            var    result  = httpClient.PostAsync("http://127.0.0.1:828/jt808api/UnificationSend", new StringContent(JsonConvert.SerializeObject(jT808UnificationSendRequestDto))).Result;
            string content = result.Content.ReadAsStringAsync().Result;
            JT808ResultDto <bool> jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <bool> >(content);

            Assert.Equal(200, jt808Result.Code);
            Assert.True(jt808Result.Data);
            SimpleTcpClient.Down();
        }
        public JT808ResultDto <bool> Send(string terminalPhoneNo, byte[] data)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                var session = jT808SessionManager.GetSession(terminalPhoneNo);
                if (session != null)
                {
                    jT808TrafficService.SendSize(data.Length);
                    session.Channel.WriteAndFlushAsync(new DatagramPacket(Unpooled.WrappedBuffer(data), session.Sender));
                    resultDto.Code = JT808ResultCode.Ok;
                    resultDto.Data = true;
                }
                else
                {
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = false;
                    resultDto.Message = "offline";
                }
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            return(resultDto);
        }
示例#3
0
        public JT808ResultDto <bool> Send(string terminalPhoneNo, byte[] data)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                var session = jT808SessionManager.GetSessionByTerminalPhoneNo(terminalPhoneNo);
                if (session != null)
                {
                    session.Channel.WriteAndFlushAsync(Unpooled.WrappedBuffer(data));
                    resultDto.Code = JT808ResultCode.Ok;
                    resultDto.Data = true;
                }
                else
                {
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = false;
                    resultDto.Message = "not session";
                }
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            return(resultDto);
        }
示例#4
0
        /// <summary>
        /// 会话服务-通过设备终端号移除对应会话
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public byte[] RemoveUdpByTerminalPhoneNo(string json)
        {
            if (string.IsNullOrEmpty(json))
            {
                return(EmptyHttpResponse());
            }
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                JT808TerminalPhoneNoDto parameter = JsonSerializer.Deserialize <JT808TerminalPhoneNoDto>(json);
                SessionManager.RemoveByTerminalPhoneNo(parameter.TerminalPhoneNo);
                resultDto.Code = JT808ResultCode.Ok;
                resultDto.Data = true;
            }
            catch (AggregateException ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = 500;
                resultDto.Message = ex.StackTrace;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(CreateHttpResponse(resultDto));
        }
        /// <summary>
        /// 获取当前系统进程使用率
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JT808HttpResponse SystemCollectGet(JT808HttpRequest request)
        {
            JT808ResultDto <JT808SystemCollectInfoDto> jT808ResultDto = new JT808ResultDto <JT808SystemCollectInfoDto>();

            jT808ResultDto.Data = jT808SimpleSystemCollectService.Get();
            return(CreateJT808HttpResponse(jT808ResultDto));
        }
示例#6
0
        /// <summary>
        /// 通过终端手机号查询对应会话
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public byte[] QueryTcpSessionByTerminalPhoneNo(string json)
        {
            if (string.IsNullOrEmpty(json))
            {
                return(EmptyHttpResponse());
            }

            JT808ResultDto <JT808TcpSessionInfoDto> resultDto = new JT808ResultDto <JT808TcpSessionInfoDto>();

            try
            {
                JT808TerminalPhoneNoDto parameter = JsonSerializer.Deserialize <JT808TerminalPhoneNoDto>(json);
                resultDto.Data = SessionManager.GetTcpAll(w => w.TerminalPhoneNo == parameter.TerminalPhoneNo).Select(s => new JT808TcpSessionInfoDto
                {
                    LastActiveTime  = s.ActiveTime,
                    StartTime       = s.StartTime,
                    TerminalPhoneNo = s.TerminalPhoneNo,
                    RemoteAddressIP = s.RemoteEndPoint.ToString(),
                }).FirstOrDefault();
                resultDto.Code = JT808ResultCode.Ok;
            }
            catch (Exception ex)
            {
                resultDto.Data    = null;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(CreateHttpResponse(resultDto));
        }
示例#7
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);
        }
示例#8
0
        public JT808ResultDto <bool> RemoveByTerminalPhoneNo(string terminalPhoneNo)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                var session = jT808SessionManager.RemoveSession(terminalPhoneNo);
                if (session != null)
                {
                    if (session.Channel.Open)
                    {
                        session.Channel.CloseAsync();
                    }
                }
                resultDto.Code = JT808ResultCode.Ok;
                resultDto.Data = true;
            }
            catch (AggregateException ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = 500;
                resultDto.Message = ex.Message;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.Message;
            }
            return(resultDto);
        }
        public JT808ResultDto <bool> Send(string terminalPhoneNo, byte[] data)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                if (jT808SessionManager.TrySend(terminalPhoneNo, data, out var message))
                {
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = true;
                    resultDto.Message = message;
                }
                else
                {
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = false;
                    resultDto.Message = message;
                }
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            return(resultDto);
        }
        public JT808ResultDto <bool> RemoveByTerminalPhoneNo(string terminalPhoneNo)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                var session = jT808SessionManager.RemoveSessionByTerminalPhoneNo(terminalPhoneNo);
                if (session != null)
                {
                    session.Channel.CloseAsync();
                }
                resultDto.Code = JT808ResultCode.Ok;
                resultDto.Data = true;
            }
            catch (AggregateException ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = 500;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            return(resultDto);
        }
        public JT808ResultDto <bool> Send(string terminalPhoneNo, byte[] data)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                var session = jT808SessionManager.GetSession(terminalPhoneNo);
                if (session != null)
                {
                    session.Channel.WriteAndFlushAsync(jT808DatagramPacket.Create(data, session.Sender));
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = true;
                    resultDto.Message = "Ok";
                }
                else
                {
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = false;
                    resultDto.Message = "offline";
                }
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            return(resultDto);
        }
示例#12
0
        public ActionResult <JT808ResultDto <string> > Index1()
        {
            JT808ResultDto <string> resultDto = new JT808ResultDto <string>();

            resultDto.Data = "Hello,JT808 WebApi Ext";
            resultDto.Code = JT808ResultCode.Ok;
            return(resultDto);
        }
        /// <summary>
        /// 基于Udp的流量获取
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public JT808HttpResponse TrafficUdpGet(JT808HttpRequest request)
        {
            JT808ResultDto <JT808TrafficInfoDto> jT808ResultDto = new JT808ResultDto <JT808TrafficInfoDto>();

            jT808ResultDto.Data = new JT808TrafficInfoDto();
            jT808ResultDto.Data.TotalReceiveSize = (jT808UdpTrafficService.TotalReceiveSize * 1.0) / 1024;
            jT808ResultDto.Data.TotalSendSize    = (jT808UdpTrafficService.TotalSendSize * 1.0) / 1024;
            return(CreateJT808HttpResponse(jT808ResultDto));
        }
        public void GetAllTest()
        {
            var    result  = httpClient.GetAsync($"{Url}/{sessionRoutePrefix}/GetAll").Result;
            string content = result.Content.ReadAsStringAsync().Result;
            JT808ResultDto <IEnumerable <JT808SessionInfoDto> > jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <IEnumerable <JT808SessionInfoDto> > >(content);

            Assert.Equal(200, jt808Result.Code);
            Assert.Equal(10, jt808Result.Data.Count());
        }
        public void RemoveSessionByTerminalPhoneNoTest()
        {
            JT808ResultDto <bool> jT808ResultDto = new JT808ResultDto <bool>();

            jT808ResultDto.Data = true;
            jT808ResultDto.Code = 200;
            JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.SessionRemoveByTerminalPhoneNo, "123456789", JsonSerializer.Serialize(jT808ResultDto)));
            var             result          = jT808HttpClient.RemoveByTerminalPhoneNo("123456789");

            Assert.Equal(jT808ResultDto.Code, result.Code);
            Assert.Equal(jT808ResultDto.Data, result.Data);
        }
        public void RemoveByChannelIdTest()
        {
            // 心跳会话包
            JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("99");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));

            var    result4  = httpClient.PostAsync($"{Url}/{sessionRoutePrefix}/RemoveByChannelId", new StringContent("99")).Result;
            string content4 = result4.Content.ReadAsStringAsync().Result;
            JT808ResultDto <bool> jt808Result4 = JsonConvert.DeserializeObject <JT808ResultDto <bool> >(content4);

            Assert.Equal(200, jt808Result4.Code);
            Assert.True(jt808Result4.Data);
        }
        public void GetTcpAtomicCounterTest()
        {
            JT808ResultDto <JT808AtomicCounterDto> jT808ResultDto = new JT808ResultDto <JT808AtomicCounterDto>();

            jT808ResultDto.Data = new JT808AtomicCounterDto {
                MsgFailCount    = 9,
                MsgSuccessCount = 10
            };
            jT808ResultDto.Code = 200;
            JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.GetTcpAtomicCounter, "", JsonSerializer.Serialize(jT808ResultDto)));
            var             result          = jT808HttpClient.GetTcpAtomicCounter();

            Assert.Equal(jT808ResultDto.Code, result.Code);
            Assert.Equal(jT808ResultDto.Data.MsgFailCount, result.Data.MsgFailCount);
            Assert.Equal(jT808ResultDto.Data.MsgSuccessCount, result.Data.MsgSuccessCount);
        }
示例#18
0
        /// <summary>
        /// 查询sim卡黑名单
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public byte[] QueryBlacklist(string json)
        {
            JT808ResultDto <List <string> > resultDto = new JT808ResultDto <List <string> >();

            try
            {
                resultDto.Data = BlacklistManager.GetAll();
                resultDto.Code = JT808ResultCode.Ok;
            }
            catch (Exception ex)
            {
                resultDto.Data    = null;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(CreateHttpResponse(resultDto));
        }
        public void UnificationSendTest()
        {
            JT808ResultDto <bool> jT808ResultDto = new JT808ResultDto <bool>();

            jT808ResultDto.Data = true;
            jT808ResultDto.Code = 200;
            JT808UnificationSendRequestDto jT808UnificationSendRequestDto = new JT808UnificationSendRequestDto
            {
                TerminalPhoneNo = "123456789",
                Data            = new byte[] { 1, 2, 3, 4 }
            };
            JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.UnificationSend, JsonSerializer.Serialize(jT808UnificationSendRequestDto), JsonSerializer.Serialize(jT808ResultDto)));
            var             result          = jT808HttpClient.UnificationSend(jT808UnificationSendRequestDto);

            Assert.Equal(jT808ResultDto.Code, result.Code);
            Assert.Equal(jT808ResultDto.Data, result.Data);
        }
示例#20
0
        public ActionResult <JT808ResultDto <List <string> > > BlacklistGetAll()
        {
            JT808ResultDto <List <string> > resultDto = new JT808ResultDto <List <string> >();

            try
            {
                resultDto.Code = JT808ResultCode.Ok;
                resultDto.Data = BlacklistManager.GetAll();
            }
            catch (Exception ex)
            {
                resultDto.Data    = new List <string>();
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(resultDto);
        }
示例#21
0
        /// <summary>
        /// 获取通道信息集合
        /// </summary>
        /// <returns></returns>
        public JT808ResultDto <List <JT808SourcePackageChannelInfoDto> > GetAll()
        {
            JT808ResultDto <List <JT808SourcePackageChannelInfoDto> > jT808ResultDto = new JT808ResultDto <List <JT808SourcePackageChannelInfoDto> >();

            jT808ResultDto.Data = new List <JT808SourcePackageChannelInfoDto>();
            jT808ResultDto.Code = JT808ResultCode.Ok;
            foreach (var item in channels)
            {
                JT808SourcePackageChannelInfoDto jT808SourcePackageChannelInfoDto = new JT808SourcePackageChannelInfoDto();
                jT808SourcePackageChannelInfoDto.Active        = item.Value.Active;
                jT808SourcePackageChannelInfoDto.Open          = item.Value.Open;
                jT808SourcePackageChannelInfoDto.Registered    = item.Value.Registered;
                jT808SourcePackageChannelInfoDto.LocalAddress  = item.Value.LocalAddress.ToString().Replace("[::ffff:", "").Replace("]", "");
                jT808SourcePackageChannelInfoDto.RemoteAddress = item.Value.RemoteAddress.ToString().Replace("[::ffff:", "").Replace("]", "");
                jT808ResultDto.Data.Add(jT808SourcePackageChannelInfoDto);
            }
            return(jT808ResultDto);
        }
示例#22
0
        public async Task <ActionResult <JT808ResultDto <bool> > > UnificationSend([FromBody] JT808UnificationSendRequestDto parameter)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                resultDto.Data = await SessionManager.TrySendByTerminalPhoneNoAsync(parameter.TerminalPhoneNo, Convert.FromHexString(parameter.HexData));

                resultDto.Code = JT808ResultCode.Ok;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(resultDto);
        }
示例#23
0
        public ActionResult <JT808ResultDto <bool> > BlacklistRemove([FromBody] JT808TerminalPhoneNoDto parameter)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                BlacklistManager.Remove(parameter.TerminalPhoneNo);
                resultDto.Code = JT808ResultCode.Ok;
                resultDto.Data = true;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(resultDto);
        }
示例#24
0
        public void Test1()
        {
            jT808SessionServiceDefaultImpl = ServiceProvider.GetService <IJT808TcpSessionService>();
            jT808UnificationTcpSendService = ServiceProvider.GetService <IJT808UnificationTcpSendService>();
            jT808SessionServiceDefaultImpl.GetAll();
            string no = "123456789001";
            // 文本信息包
            JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create(no, new JT808_0x8300
            {
                TextFlag = 5,
                TextInfo = "smallchi 518"
            });
            var data = JT808Serializer.Serialize(jT808Package2);
            JT808ResultDto <bool> jt808Result = jT808UnificationTcpSendService.Send(no, data);

            Thread.Sleep(1000);
            Assert.AreEqual(200, jt808Result.Code);
            Assert.IsTrue(jt808Result.Data);
        }
        public void Test1()
        {
            //"126 131 0 0 13 18 52 86 120 144 1 0 11 5 115 109 97 108 108 99 104 105 32 53 49 56 24 126"
            jT808SessionServiceDefaultImpl = ServiceProvider.GetService <IJT808SessionService>();
            jT808UnificationSendService    = ServiceProvider.GetService <IJT808UnificationSendService>();
            jT808SessionServiceDefaultImpl.GetUdpAll();
            string no = "123456789001";
            // 文本信息包
            JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.文本信息下发.Create(no, new JT808_0x8300
            {
                TextFlag = 5,
                TextInfo = "smallchi 518"
            });
            var data = JT808Serializer.Serialize(jT808Package2);
            JT808ResultDto <bool> jt808Result = jT808UnificationSendService.Send(no, data);

            Thread.Sleep(1000);
            Assert.Equal(200, jt808Result.Code);
            Assert.True(jt808Result.Data);
        }
        public void Test2()
        {
            // 心跳会话包
            JT808Package jT808Package1 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789001");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package1));

            // 心跳会话包
            JT808Package jT808Package2 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789002");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package2));

            // 心跳会话包
            JT808Package jT808Package3 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789003");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package3));

            // 心跳会话包
            JT808Package jT808Package4 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789004");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package4));

            // 心跳会话包
            JT808Package jT808Package5 = JT808.Protocol.Enums.JT808MsgId.终端心跳.Create("123456789005");

            SimpleTcpClient.WriteAsync(JT808Serializer.Serialize(jT808Package5));

            // 异步的需要延时下
            Thread.Sleep(1000);

            HttpClient httpClient = new HttpClient();
            // 调用内置的http服务接收文本信息下发
            var    result  = httpClient.GetAsync("http://127.0.0.1:828/jt808api/GetAtomicCounter").Result;
            string content = result.Content.ReadAsStringAsync().Result;
            JT808ResultDto <JT808AtomicCounterDto> jt808Result = JsonConvert.DeserializeObject <JT808ResultDto <JT808AtomicCounterDto> >(content);

            Assert.Equal(200, jt808Result.Code);
            Assert.Equal(5, jt808Result.Data.MsgSuccessCount);
            Assert.Equal(0, jt808Result.Data.MsgFailCount);
            SimpleTcpClient.Down();
        }
        public void GetTcpSessionAllTest()
        {
            JT808ResultDto <List <JT808TcpSessionInfoDto> > jT808ResultDto = new JT808ResultDto <List <JT808TcpSessionInfoDto> >();

            jT808ResultDto.Data = new List <JT808TcpSessionInfoDto>();
            jT808ResultDto.Code = 200;
            jT808ResultDto.Data.Add(new JT808TcpSessionInfoDto {
                LastActiveTime  = DateTime.Parse("2019-10-29 23:23:23"),
                StartTime       = DateTime.Parse("2019-10-29 23:23:23"),
                RemoteAddressIP = "127.0.0.1:555",
                TerminalPhoneNo = "123456789"
            });
            JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.SessionTcpGetAll, "", JsonSerializer.Serialize(jT808ResultDto)));
            var             result          = jT808HttpClient.GetTcpSessionAll();

            Assert.Equal(jT808ResultDto.Code, result.Code);
            Assert.Equal(jT808ResultDto.Data[0].TerminalPhoneNo, result.Data[0].TerminalPhoneNo);
            Assert.Equal(jT808ResultDto.Data[0].StartTime, result.Data[0].StartTime);
            Assert.Equal(jT808ResultDto.Data[0].LastActiveTime, result.Data[0].LastActiveTime);
            Assert.Equal(jT808ResultDto.Data[0].RemoteAddressIP, result.Data[0].RemoteAddressIP);
        }
        /// <summary>
        /// 移除sim卡黑名单
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public byte[] BlacklistRemove(string json)
        {
            if (string.IsNullOrEmpty(json))
            {
                return(EmptyHttpResponse());
            }
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                BlacklistManager.Remove(json);
                resultDto.Data = true;
                resultDto.Code = JT808ResultCode.Ok;
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = ex.StackTrace;
            }
            return(CreateHttpResponse(resultDto));
        }
        public void GetTcpSessionAllLargeTest()
        {
            JT808ResultDto <List <JT808TcpSessionInfoDto> > jT808ResultDto = new JT808ResultDto <List <JT808TcpSessionInfoDto> >();

            jT808ResultDto.Data = new List <JT808TcpSessionInfoDto>();
            jT808ResultDto.Code = 200;
            for (var i = 0; i < 50000; i++)
            {
                jT808ResultDto.Data.Add(new JT808TcpSessionInfoDto
                {
                    LastActiveTime  = DateTime.Parse("2019-10-29 23:23:23"),
                    StartTime       = DateTime.Parse("2019-10-29 23:23:23"),
                    RemoteAddressIP = "127.0.0.1:555",
                    TerminalPhoneNo = (i + 1).ToString()
                });
            }
            JT808HttpClient jT808HttpClient = new JT808HttpClient(CreateHttpClient(JT808NettyConstants.JT808WebApiRouteTable.SessionTcpGetAll, "", JsonSerializer.Serialize(jT808ResultDto)));
            var             result          = jT808HttpClient.GetTcpSessionAll();

            Assert.Equal(jT808ResultDto.Code, result.Code);
            Assert.Equal(50000, result.Data.Count);
        }
示例#30
0
        public JT808ResultDto <bool> Send(string terminalPhoneNo, byte[] data)
        {
            JT808ResultDto <bool> resultDto = new JT808ResultDto <bool>();

            try
            {
                var session = jT808SessionManager.GetSession(terminalPhoneNo);
                if (session != null)
                {
                    //判断转发数据是下发不了消息的
                    if (jT808SessionManager.GetAll().Count(c => c.Channel.Id == session.Channel.Id) > 1)
                    {
                        resultDto.Code    = JT808ResultCode.Ok;
                        resultDto.Data    = false;
                        resultDto.Message = "not support transmit data send.";
                    }
                    else
                    {
                        jT808TcpTrafficService.SendSize(data.Length);
                        session.Channel.WriteAndFlushAsync(Unpooled.WrappedBuffer(data));
                        resultDto.Code = JT808ResultCode.Ok;
                        resultDto.Data = true;
                    }
                }
                else
                {
                    resultDto.Code    = JT808ResultCode.Ok;
                    resultDto.Data    = false;
                    resultDto.Message = "offline";
                }
            }
            catch (Exception ex)
            {
                resultDto.Data    = false;
                resultDto.Code    = JT808ResultCode.Error;
                resultDto.Message = Newtonsoft.Json.JsonConvert.SerializeObject(ex);
            }
            return(resultDto);
        }