与多人一起调试Azure SignalR(不与自己的本地主机连接)



最近我构建了一个Azure SignalR应用程序,当前运行在https://localhost:12345/上(在c# web API项目中)。

我正在一个Angular应用中使用Azure SignalR应用。

目前,我正在与同事一起调试SignalR代码,所以我们经常在本地主机中运行SignalR应用程序。我们注意到,Angular代码在50%的情况下会连接到我们自己的localhost实例,而在50%的情况下会连接到别人的localhost实例。这会导致各种各样的副作用,例如,你不能保证你自己在SignalR代码中的断点会被击中。

有人也遇到过这个问题吗?有没有办法强制Angular连接到你自己的SignalR代码实例(你自己的localhost)?

这是预期的行为,因为你们两个都连接到同一个Azure SignalR服务实例。唯一的方法是

  • 使用自己单独的SignalR实例进行调试

  • self-host SignalR用于本地调试(如果使用上面单独的SignalR实例太麻烦)。https://learn.microsoft.com/aspnet/core/tutorials/signalr

  • (不是你的情况,但只是供参考)在本地运行Azure SignalR模拟器(目前在预览中)并连接到它而不是真正的Azure。请注意,模拟器适用于Azure Function等无服务器场景。有关详细信息,请访问https://github.com/Azure/azure-signalr/blob/dev/docs/emulator.md