kerryjiang / SuperSocket

SuperSocket is a light weight, cross platform and extensible socket server application framework.
Apache License 2.0
3.91k stars 1.15k forks source link

session 无法正确清理的问题 #622

Open hellofengge opened 1 year ago

hellofengge commented 1 year ago

作者你好

我们是做IOT设备的,客户端只具备同时保持一条socket的能力。

为了准确的发送消息到客户端我们在protected override void OnSessionClosed(CloseReason reason)中会记录日志并且清理掉过时的session;

但是我们在线上发现服务端同时持有一个客户端的多个session,并且没有旧session的断开日志,也就是说连接的断开并没有100%的触发OnSessionClosed(CloseReason reason)这个函数;这个问题产生的结果就是我们在发送消息时错误的选择了一条旧session,导致用户在发送消息时我们会收到 The sending attempt timed out这样的错误。

请问这个问题的产生原因可能时什么导致的呢?

还请不吝赐教啊

线上环境:Windows 2012 Server 8C 16G

SuperSocket 版本:1.6.6.1

kerryjiang commented 1 year ago

I suggest you upgrade to SuperSocket 2.0

建议升级至2.0