Giter VIP home page Giter VIP logo

smallchi / jt808gateway Goto Github PK

View Code? Open in Web Editor NEW
181.0 25.0 117.0 9.03 MB

JT/T808 Gateway,JT808 Gateway, GB808 Gateway(support 2011, 2013, 2019 version) JT/T808网关、JT808网关、GB808网关(支持2011、2013、2019版本)

License: MIT License

C# 97.42% Batchfile 0.31% HTML 2.22% Dockerfile 0.05%
jt808 gb808 jt808-dotnetty gps-gateway jt808-gateway dotnetcore csharp jt808-pipeline net6 808

jt808gateway's Issues

Run in Ubuntu 18.04 arm64 error

Dears,

Great project,now I can build this project on Ubuntu arm64 platform, but encounter below error when I run the JT808.Gateway.SimpleServer, could you give me some help or hints to fix it, sorry for this naive problem.

bin/Debug/netcoreapp3.1/JT808.Gateway.SimpleServer
dbug: Microsoft.Extensions.Hosting.Internal.Host[1]
Hosting starting
info: JT808TcpServer[0]
JT808 TCP Server start at 0.0.0.0:808.
info: JT808TcpReceiveTimeout[0]
[Check Receive Timeout]
info: JT808TcpReceiveTimeout[0]
[Session Online Count]:0
info: JT808UdpServer[0]
JT808 Udp Server start at 0.0.0.0:808.
info: JT808UdpReceiveTimeout[0]
[Check Receive Timeout]
info: JT808UdpReceiveTimeout[0]
[Session Online Count]:0
fail: JT808TransmitService[0]
初始化配置链接远程服务端all_127.0.0.1:20000,链接异常:System.Net.Sockets.SocketException (111): Connection refused
at System.Net.Sockets.Socket.BeginConnectEx(EndPoint remoteEP, Boolean flowContext, AsyncCallback callback, Object state)
at System.Net.Sockets.Socket.UnsafeBeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state, Boolean flowContext)
at System.Net.Sockets.Socket.BeginConnect(EndPoint remoteEP, AsyncCallback callback, Object state)
at System.Net.Sockets.Socket.ConnectAsync(EndPoint remoteEP)
at JT808.Gateway.Transmit.JT808TransmitService.InitRemoteServsers()
Unhandled exception. System.IO.IOException: Error loading native library "/root/dotnet/JT808Gateway/simples/JT808.Gateway.SimpleServer/bin/Debug/netcoreapp3.1/runtimes/linux/native/libgrpc_csharp_ext.x64.so".
at Grpc.Core.Internal.UnmanagedLibrary..ctor(String[] libraryPathAlternatives)
at Grpc.Core.Internal.NativeExtension.LoadUnmanagedLibrary()
at Grpc.Core.Internal.NativeExtension.LoadNativeMethods()
at Grpc.Core.Internal.NativeExtension..ctor()
at Grpc.Core.Internal.NativeExtension.Get()
at Grpc.Core.Internal.NativeMethods.Get()
at Grpc.Core.GrpcEnvironment.GrpcNativeInit()
at Grpc.Core.GrpcEnvironment..ctor()
at Grpc.Core.GrpcEnvironment.AddRef()
at Grpc.Core.Server..ctor(IEnumerable`1 options)
at Grpc.Core.Server..ctor()
at JT808.Gateway.JT808GrpcServer.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at JT808.Gateway.SimpleServer.Program.Main(String[] args) in /root/dotnet/JT808Gateway/simples/JT808.Gateway.SimpleServer/Program.cs:line 61
at JT808.Gateway.SimpleServer.Program.

(String[] args)
Aborted (core dumped)

GPS 设备超过2台,Channel 会频繁断开,倒置GPS设备重新注册 、鉴权.

你好作者,我用了你部分代码监听GPS设备(DotNetty TCP协议),一台设备接入的时候正常接收信息,但是当2台以上GPS 设备通讯的时候 就会出现DotNetty 主动断开Channel 的情况,这时候GPS 设备又会重新连接(重新注册、鉴权)。 这种情况会频繁出现。
我通过日志看到是先走了 CloseAsync函数 (您在注释中说是 server端主动断开)。想请您看看我的代码帮我分析一下问题(有偿)。
WX号:15141173250. 希望得到你的帮助。

Docker 下报错,ubuntu 下运行也是这个错,我弄到 CentOS 没问题,但是 在CentOS 下 Docker 就报错

dbug: Microsoft.Extensions.Hosting.Internal.Host[1]
Hosting starting
Unhandled exception. System.Net.Sockets.SocketException (13): Permission denied
at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, Boolean disconnectOnFailure, String callerName)
at System.Net.Sockets.Socket.UpdateStatusAfterSocketOptionErrorAndThrowException(SocketError error, String callerName)
at JT808.Gateway.JT808TcpServer.InitServer() in /_/src/JT808.Gateway/JT808TcpServer.cs:line 82
at JT808.Gateway.JT808TcpServer..ctor(IOptionsMonitor1 configurationMonitor, IJT808MsgProducer msgProducer, IJT808MsgReplyLoggingProducer msgReplyLoggingProducer, JT808MessageHandler messageHandler, IJT808Config jT808Config, ILoggerFactory loggerFactory, JT808SessionManager jT808SessionManager, JT808BlacklistManager jT808BlacklistManager) in /_/src/JT808.Gateway/JT808TcpServer.cs:line 75 at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor) at System.Reflection.MethodBaseInvoker.InvokeWithManyArgs(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite callSite, RuntimeResolverContext context)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceProvider.CreateServiceAccessor(ServiceIdentifier serviceIdentifier) at System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func`2 valueFactory)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(ServiceIdentifier serviceIdentifier, ServiceProviderEngineScope serviceProviderEngineScope)
at Microsoft.Extensions.DependencyInjection.ServiceProvider.GetService(Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
at Program.

$(String[] args) in /Users/leida/MyCode/PandaServer/PandaServer.JT808Server/Program.cs:line 37

自定义了 5808 5000 端口都EXPOSE 了

运行JT808.Gateway.SimpleServer报错,不能连接127.0.0.1:20000

编译完毕后,运行 JT808.Gateway.SimpleServer.exe 时出现下面的错误:
fail: JT808.Gateway.Transmit.JT808TransmitService[0]
该终端all已尝试未连接上该服务器127.0.0.1:20000
System.Net.Sockets.SocketException (10061): 由于目标计算机积极拒绝,无法连接。

这个监听20000端口的是哪个程序?怎么启动?

IJT808MsgConsumer等接口OnMessage的元组参数问题

不太明白 这些接口里面为什么使用元组作为参数而不是强类型,目前遇到一些麻烦。在扩展RabbitMQ作为中间件时,想统一管理同进程中的订阅及分发调用,如果是强类型可以用泛型处理各个接口间不同的参数,但是目前您源码采用的是元组参数,动态调用不好处理,您设计时使用元组参数有什么特殊的原因吗?
调用的部分:
image
几个订阅的接口
image
image
image
JT808MsgConsumer的RabbitMQ实现部分
image

出现异常后无法继续接收并处理下个JT808包

若在接收JT808包中,有一个是非JT808包,会导致异常后,无法继续接收后面正常的JT808包。经查错误代码如下:
JT808TcpServer.cs(207行)
//if (beginMark != JT808Package.BeginFlag) throw new ArgumentException("Not JT808 Packages." + "[" + beginMark.ToString() + "]");
if (beginMark != JT808Package.BeginFlag)
{
totalConsumed = seqReader.Length;
seqReader.Advance(seqReader.Length);
}

另外,若MessageHandler处理出现异常也会出现无法继续接收下个JT808包的情况。目前 ,我是在MessageHandlertry-catch所有异常,不再向上抛。

HTML5中使用websocket怎么使用此网关进行数据同步

1、gps数据通过此网关处理后,怎么通过websocket将接收到的GPS位置数据广播到所有html5页面中,h5中通过websocket获取位置数据后立刻更新位置。
2、此网关服务实例怎么扩展自定义接收到的消息呢?不是标准的808协议

如何在编解码中添加自定义的编解码

大神,基于JT808DotNetty做主动安全的协议,里面的附件上传是码流方式,和信令是一个通道。原本想做一个拓展库,发现 AddJT808TcpNettyHost 这个方法里面用到类很多是internal。我想做的是在解码中再插入一个分隔符“0x30 0x31 0x63 0x64”,现在看来只有修改源码了吗?

StatusFlag 哪个状态是点火 哪个是熄火

我看了StatusFlag 基本都是0-3,提示是参考 JT808.Protocol.Enums.JT808Status ,
但是JT808Status的状态数据有点对不上啊?
image
是在JT808MessageHandlerImpl 接收消息时取到的数据。

有单独控制网关的start,stop功能吗

对于启动已配置好的端口的监听服务, 有单独控制器启动,暂停,结束的功能吗?
比如想集成到windows服务中运行, 在服务启动停止的时候对服务进行控制

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.