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 808-tcp 808-udp gps tracker

jt808gateway's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jt808gateway's Issues

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

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

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

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

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)

出现异常后无法继续接收并处理下个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协议

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 了

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

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

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

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

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

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

运行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端口的是哪个程序?怎么启动?

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.