如果不允许Websocket,则Blazor服务器托管的显示警报

时间:2019-10-25 13:46:49

标签: websocket signalr blazor-server-side

我想创建一个托管的Blazor服务器。如果SignalR由于不允许websockets而无法创建连接,是否有一种方法可以显示浏览器警报或将用户重定向到另一个URL,例如Blazor Wasm正在运行?

这可以使用c#或Javascript完成吗?

1 个答案:

答案 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客户端。