是否可以使用 connectionId 从 signalR 集线器中删除客户端?我正在尝试创建一个可以从集线器中删除客户端的应用程序吗?
答案 0 :(得分:1)
SignalR不提供断开客户端的API。您可以通过定义客户端方法并在body调用connection.stop()
中解决此问题答案 1 :(得分:0)
SignalR版本2没有用于断开客户端连接的内置服务器API。在当前的SignalR版本中,断开客户端与服务器的最简单方法是在客户端上实现disconnect方法并从服务器调用该方法。以下代码示例显示了使用生成的代理的JavaScript客户端的断开连接方法。
var myHubProxy = $.connection.myHub
myHubProxy.client.stopClient = function() {
$.connection.hub.stop();
};
安全注意:此方法断开客户端或建议的内置API都不会解决运行恶意代码的被黑客户端的情况,因为客户端可能会重新连接,或者被黑客入侵的代码可能会删除stopClient方法或更改它确实。实现有状态拒绝服务(DOS)保护的适当位置不在框架或服务器层中,而是在前端基础结构中。