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

时间:2016-02-06 05:52:40

标签: c# websocket-sharp

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

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

WebSocketBehavior.Context.WebSocket.Close

所以我尝试在我的重写类

中添加一个方法
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

服务器如何断开/关闭WebSocket连接?

1 个答案:

答案 0 :(得分:1)

their repo

中的单据所述

您只需要关闭相关会话:

 Sessions.CloseSession(ID);

编辑:

它与OP的代码相同,但通过正确的抽象调用,这应该在理论上有效,但是他试图从“低级别”访问东西的事实让我怀疑他访问其他内部功能全部绕过“公共方法”,可能导致错误的行为(就像“公共方法”所称的内容不再有效,我建议你只能从正确的抽象中访问所有内容以避免问题,之后如果问题仍然存在,你应该在原始存储库中提出要求修复错误的故障。这样的错误无法修复,因为请注意你所写的所有其他代码。

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