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); }
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); }
/// <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)); }
/// <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)); }
/// <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); }
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); }
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); }
/// <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); }
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); }
/// <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); }
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); }
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); }
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); }
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); }