如何通过点击按钮断开特定客户端的连接?单击按钮删除时,我想断开特定客户端与聊天的连接。我做chatHub.connection.stop();但它只能在一个客户端上运行,而不是在每个客户端上运行!
提前完成
答案 0 :(得分:2)
chatHub.connection.stop()
是断开客户端连接的方法。
如果要通过来自一个客户端的消息断开所有客户端,则必须从服务器执行此操作。
使用当前版本(SignalR 2.0),您将如何操作。
disconnectAllClients
)chatHub.connection.stop()
这是因为
单个客户端不能断开其他客户端(想象一个流氓客户端将此作为DoS或DDoS攻击)
SignalR v2.0此时没有服务器端API来删除连接。所以客户端应该断开连接。
<强>引用:强>
SignalR版本2没有用于断开客户端连接的内置服务器API。有计划在将来添加此功能。在当前的SignalR版本中,断开客户端与服务器的最简单方法是在客户端上实现disconnect方法并从服务器调用该方法。以下代码示例显示了使用生成的代理的JavaScript客户端的断开连接方法。
来自安全说明:
这种断开客户端的方法和建议的内置API都不能解决运行恶意代码的黑客客户端的情况,因为客户端可能会重新连接,或者被黑客入侵的代码可能会删除stopClient方法或更改它的功能。实现有状态拒绝服务(DOS)保护的适当位置不在框架或服务器层中,而是在前端基础结构中。