SmallChi / JT808Gateway

JT/T808 Gateway,JT808 Gateway, GB808 Gateway(support 2011, 2013, 2019 version) JT/T808网关、JT808网关、GB808网关(支持2011、2013、2019版本)
MIT License
183 stars 117 forks source link

接收808转发数据问题 #30

Closed ahern2012 closed 4 months ago

ahern2012 commented 4 months ago

大佬,接收平台方转发数据这里貌似有坑,目前有两种情况:1、连接正常情况下,对方IP端口不变,断开连接后调用item.ReceiveTimeout.Cancel()无效,超过10分钟的会话仍然存在,必须调用SessionManager.RemoveByTerminalPhoneNo方法才能移除该会话,不调用则必须重启服务,否则无法再次上线,重启服务之后也不能立即上线,需要最长10分钟才能上线。 2、对方IP不变端口一直在变,会话中存在多条该终端号记录,其中包含相同的IP端口数据,也有不同的端口。每台设备平均每10秒钟打印一条JT808SessionOnline日志。

JT808SessionManager.TerminalPhoneNoSessions数量为1500,JT808SessionManager.Sessions数量超过10万,不重启服务会话数量会一直增长,内存也随之不断增长。

SmallChi commented 4 months ago

1.新版应该是解决了的 2.要看看具体数据是怎么对应的 @yedajiang44 你方便的时候帮看下1的问题,好像你上次解决了不是?

ahern2012 commented 4 months ago

JT808.Gateway用的就是最新的版本

SmallChi commented 4 months ago

@yedajiang44 老6没有提交。O(∩_∩)O哈哈~

ahern2012 commented 4 months ago

1717468241597 这是第二种转发方式其中一台终端的错误日志,对方平台频繁的断开、连接导致FillPipeAsync,ReadPipeAsync读写报异常,SessionManager.RemoveBySessionId(session.SessionID)并未正确执行,所以socket连接会话才会不断增长?

yedajiang44 commented 4 months ago

1717468241597 这是第二种转发方式其中一台终端的错误日志,对方平台频繁的断开、连接导致FillPipeAsync,ReadPipeAsync读写报异常,SessionManager.RemoveBySessionId(session.SessionID)并未正确执行,所以socket连接会话才会不断增长?

拉下代码,你的这个问题之前没提交,测着测着就忘了,另外JT808SessionManager.Sessions连接数多是另有其因,需要酌情考虑下怎么合理的处理。或者有什么想法直接提pr

ahern2012 commented 4 months ago

好的,谢谢大佬!