使用 websocket-sharp for .NET 服务器如何关闭 WebSocketBehavior?
Using websocket-sharp for .NET how can the server close a WebSocketBehavior?
我正在尝试将 websocket-sharp 用于一个项目,服务器需要能够断开 websocket 连接。
连接由您继承的 WebSocketBehavior class 表示。 WebSocketBehavior
上没有 Stop
或 Close
或 Disconnect
方法。我能找到的最接近的是
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连接?
中的票证所述
您只需关闭相关会话:
Sessions.CloseSession(ID);
编辑:
它与 OP 的代码相同,但通过 正确的抽象调用 ,理论上应该可以工作,但事实上他试图从 "low level" 访问内容,让我怀疑他访问其他内部功能都绕过了 "public method" 这可能会导致错误的行为(比如 "public methods" 调用的东西不再工作,我建议你 访问所有内容只能从适当的抽象 为了避免问题,如果问题仍然存在,你应该在原始存储库中制作一张票,要求修复错误。这样的错误不能在那里修复,因为需要了解所有其他代码你写的。
之后,您应该使用日志文件跟踪客户端和服务器端,以发现发生了什么,例如连接已被客户端关闭(如 Evk 在评论中所述)
我正在尝试将 websocket-sharp 用于一个项目,服务器需要能够断开 websocket 连接。
连接由您继承的 WebSocketBehavior class 表示。 WebSocketBehavior
上没有 Stop
或 Close
或 Disconnect
方法。我能找到的最接近的是
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连接?
您只需关闭相关会话:
Sessions.CloseSession(ID);
编辑:
它与 OP 的代码相同,但通过 正确的抽象调用 ,理论上应该可以工作,但事实上他试图从 "low level" 访问内容,让我怀疑他访问其他内部功能都绕过了 "public method" 这可能会导致错误的行为(比如 "public methods" 调用的东西不再工作,我建议你 访问所有内容只能从适当的抽象 为了避免问题,如果问题仍然存在,你应该在原始存储库中制作一张票,要求修复错误。这样的错误不能在那里修复,因为需要了解所有其他代码你写的。
之后,您应该使用日志文件跟踪客户端和服务器端,以发现发生了什么,例如连接已被客户端关闭(如 Evk 在评论中所述)