我一直试图找到有关SignalR Azure服务实际工作方式的更多信息,似乎很难找到。无论如何,我一直在做一个实时聊天项目,我有一个关于使用Azure SignalR服务进行开发的快速问题。
似乎开发一个signalR应用程序应该在本地完成。起初只有我自己在这个项目上工作,一切都很顺利。几天前,我们在项目中增加了一些团队成员,其中一个开发人员开始接触我设置的中心。从那时起,似乎我连接到Azure服务与集线器通信(而不是在本地托管signalR),在尝试调用我的任何集线器方法时,我得到一些奇怪且完全随机的错误。我基本上只是得到“有一个错误调用Hub方法'XXX'。”这些错误甚至几乎都不一致,有时候我成功调用了这个方法,有时候我没有。
奇怪的是,我的本地集线器不会抛出任何异常甚至错误。几乎好像它无法一起击中我的枢纽。
这是我们两个人使用相同的天蓝色服务开发但是在我们不同的分支上修改同一个集线器的产品吗?
谢谢您的帮助!
SignalR默认不会给你详细的错误,你可以使用以下代码:
var hubConfiguration = new HubConfiguration();
hubConfiguration.EnableDetailedErrors = true;
app.MapSignalR(hubConfiguration);
然后在客户端显示它
$.connection.hub.error(function (error) {
console.log('SignalR error: ' + error)
});
同样,您也可以在处理异常时将其添加到C#客户端代码中。
在某些情况下,您甚至无法访问客户端部分以查看错误。但是通过执行第一部分,您将启用详细错误,您可以看到SignalR响应中的错误。您只需要一个像Chrome浏览器Web开发人员工具这样的工具,它可以为您提供网络部分操作,其中记录了所有数据传输状态。你可以检查那里的SignalR错误。日志中的信息将非常详细和有用。
有关signalR错误的日志和更多信息,请访问https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client#handleerrors
希望能帮助到你。