gpt4 book ai didi

c# - 在 SignalR 中,是否可以模拟重新连接进行测试?

转载 作者:太空狗 更新时间:2023-10-29 23:51:51 25 4
gpt4 key购买 nike

我了解如果连接因任何原因失败,SignalR 会不断尝试重新连接。测试我的服务器和客户端对此响应的最佳方法是什么?

最佳答案

为了让Client尝试重连,需要配置HubConnectionBuilderwithAutomaticReconnect方法。 JavaScript 代码看起来像这样:

const connection = new signalR.HubConnectionBuilder()
.withUrl(`${apiUrl}/subscribe/change`)
.withAutomaticReconnect()
.build();

设置后,客户端将在连接丢失时尝试重新连接。

在内部,当 SignalR 断开连接时,它会调用 stopInternal 函数。

如果您想进行一些手动测试以确保您的处理程序被解雇并且它们按照您的期望进行操作。您可以将连接保存在 const 中并自行触发事件。

我做了什么:

  1. 像上面的代码一样创建连接,
  2. window 对象中缓存连接。
    window.signalR = connection;
  1. 打开浏览器控制台,点击左侧的三个点并导航至网络条件

enter image description here

  1. 已将 Network throttling 更新为离线。

enter image description here

  1. 最后跑了:
signalR.connection.stopInternal();

我的 onreconnecting 处理程序开始触发。它默认运行 4 次。它看起来像这样:

connection.onreconnecting(error => {
console.log('Reconnecting interval', error);
});

注意:此策略仅用于开发和一些手动测试。我不建议使用 window 对象进行单元测试或集成测试。

可以通过将连接缓存在单元测试使用的一些内部变量上来实现类似的策略。

关于c# - 在 SignalR 中,是否可以模拟重新连接进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14608139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com