From 945a25e951944a39521d0d46bc72639abaaf0cdb Mon Sep 17 00:00:00 2001 From: SmallChi <564952747@qq.com> Date: Sun, 23 Dec 2018 23:52:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0session=E7=9A=84=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/JT808.DotNetty/Interfaces/IJT808Publishing.cs | 12 ++++++++++++ .../Interfaces/IJT808SessionPublishing.cs | 12 ++++++++++++ src/JT808.DotNetty/JT808.DotNetty.csproj | 1 + src/JT808.DotNetty/JT808SessionManager.cs | 7 +++---- 4 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 src/JT808.DotNetty/Interfaces/IJT808Publishing.cs create mode 100644 src/JT808.DotNetty/Interfaces/IJT808SessionPublishing.cs diff --git a/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs b/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs new file mode 100644 index 0000000..aeb8cb8 --- /dev/null +++ b/src/JT808.DotNetty/Interfaces/IJT808Publishing.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace JT808.DotNetty.Interfaces +{ + public interface IJT808Publishing + { + Task Publish(string topicName,string key,string value); + } +} diff --git a/src/JT808.DotNetty/Interfaces/IJT808SessionPublishing.cs b/src/JT808.DotNetty/Interfaces/IJT808SessionPublishing.cs new file mode 100644 index 0000000..94a968e --- /dev/null +++ b/src/JT808.DotNetty/Interfaces/IJT808SessionPublishing.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; + +namespace JT808.DotNetty.Interfaces +{ + public interface IJT808SessionPublishing : IJT808Publishing + { + + } +} diff --git a/src/JT808.DotNetty/JT808.DotNetty.csproj b/src/JT808.DotNetty/JT808.DotNetty.csproj index 60d5394..3531ddd 100644 --- a/src/JT808.DotNetty/JT808.DotNetty.csproj +++ b/src/JT808.DotNetty/JT808.DotNetty.csproj @@ -36,6 +36,7 @@ + diff --git a/src/JT808.DotNetty/JT808SessionManager.cs b/src/JT808.DotNetty/JT808SessionManager.cs index c02fd18..f545dc7 100644 --- a/src/JT808.DotNetty/JT808SessionManager.cs +++ b/src/JT808.DotNetty/JT808SessionManager.cs @@ -59,18 +59,17 @@ namespace JT808.DotNetty { // 解决了设备号跟通道绑定到一起,不需要用到通道本身的SessionId // 不管设备下发更改了设备终端号,只要是没有在内存中就当是新的 - // todo: // 存在的问题: // 1.原先老的如何销毁 // 2.这时候用的通道是相同的,设备终端是不同的 + // 当设备主动或者服务器断开以后,可以释放,这点内存忽略不计,况且更改设备号不是很频繁。 if (SessionIdDict.TryAdd(appSession.TerminalPhoneNo, appSession)) { //使用场景: //部标的超长待机设备,不会像正常的设备一样一直连着,可能10几分钟连上了,然后发完就关闭连接, //这时候想下发数据需要知道设备什么时候上线,在这边做通知最好不过了。 - //todo: 有设备关联上来可以进行通知 - //todo: 使用Redis发布订阅 - //todo: 平台下发更改设备号的时候,这时候通道和设备号是绑定在一起的,那么要是同样的通道上来,是关联不到新的设备,需要考虑 + //todo: 有设备关联上来可以进行通知 例如:使用Redis发布订阅 + } }