6

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

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

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 连接?

4

1 回答 1

1

正如他们的回购中的一张票所述

您只需要关闭相关会话:

 Sessions.CloseSession(ID);

编辑:

它与 OP 的代码相同,但通过正确的抽象调用,理论上应该可以工作,但是他试图从“低级别”访问东西的事实让我怀疑他访问其他内部功能都绕过了“公共方法” “这可能会导致错误的行为(例如“公共方法”调用的东西不再起作用,我建议您仅从适当的抽象中访问所有内容以避免出现问题,之后如果问题仍然存在,您应该开票要求修复错误在原始存储库中。无法修复此类错误,因为需要了解您编写的所有其他代码。

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

于 2016-05-11T11:10:15.887 回答