使用 websocket-sharp for .NET 服务器如何关闭 WebSocketBehavior?

Using websocket-sharp for .NET how can the server close a WebSocketBehavior?

我正在尝试将 websocket-sharp 用于一个项目,服务器需要能够断开 websocket 连接。

连接由您继承的 WebSocketBehavior class 表示。 WebSocketBehavior 上没有 StopCloseDisconnect 方法。我能找到的最接近的是

WebSocketBehavior.Context.WebSocket.Close

所以我尝试在我的覆盖中添加一个方法 class

public class MySocket : WebSocketBehavior
{
    public void Close()
    {
        base.Context.WebSocket.Close();
    }
}

但这会在打开日志记录时导致错误

2/5/2016 7:08:25 PM|Error|WebSocket.Close|This operation isn't available in: closed

服务器如何disconnect/close一个WebSocket连接?

their repo

中的票证所述

您只需关闭相关会话:

 Sessions.CloseSession(ID);

编辑:

它与 OP 的代码相同,但通过 正确的抽象调用 ,理论上应该可以工作,但事实上他试图从 "low level" 访问内容,让我怀疑他访问其他内部功能都绕过了 "public method" 这可能会导致错误的行为(比如 "public methods" 调用的东西不再工作,我建议你 访问所有内容只能从适当的抽象 为了避免问题,如果问题仍然存在,你应该在原始存储库中制作一张票,要求修复错误。这样的错误不能在那里修复,因为需要了解所有其他代码你写的。

之后,您应该使用日志文件跟踪客户端和服务器端,以发现发生了什么,例如连接已被客户端关闭(如 Evk 在评论中所述)