我想创建一个托管的Blazor服务器。如果SignalR由于不允许websockets而无法创建连接,是否有一种方法可以显示浏览器警报或将用户重定向到另一个URL,例如Blazor Wasm正在运行?
这可以使用c#或Javascript完成吗?
答案 0 :(得分:0)
您可以使用一些实现以下逻辑的Javascript来做到这一点:尝试使用Web套接字进行连接,如果失败,请重定向。 这是我自己在 TypeScript 中使用的示例:
public startConnection = () => {
this.hubConnection = new signalR.HubConnectionBuilder()
.configureLogging(signalR.LogLevel.Debug)
.withUrl('http://localhost:20000/yourHub', signalR.HttpTransportType.WebSockets)
.build();
this.hubConnection
.start()
.then(() => {
console.log('Connected!');
})
.catch(err => {
console.log('Error while starting connection: ' + err));
// do the redirect stuff here...
}
}
如果您不熟悉Javascript,则可以开始阅读Microsoft Documentation for Javascript客户端。