【问题标题】:Blazor server hosted display alert if websockets not allowed如果不允许使用 websocket,则 Blazor 服务器托管显示警报
【发布时间】:2020-02-21 21:09:17
【问题描述】:

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

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

【问题讨论】:

  • 您可以使用 Javascript 执行此操作,其逻辑如下:仅允许 WebSocktes 启动连接,如果连接启动失败,则重定向。
  • 谢谢,但我不知道任何 Javascript,你有什么建议我可以从哪里开始?
  • 首先开始阅读微软的 JavaScript SignalR 文档。之后,您将了解如何控制连接事件并在发生某些事情时采取行动。 docs.microsoft.com/en-us/aspnet/core/signalr/…
  • @Kiril1512 谢谢,如果可以,请添加一个答案,我可以将其标记为已接受。
  • 是的,我会用一个工作代码示例来回答这个问题:)

标签: websocket signalr blazor-server-side


【解决方案1】:

您可以使用一些 Javascript 实现以下逻辑:尝试使用 Web Sockets 连接,如果失败,则重定向。 这是我自己在 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 的 Javascript 客户端。

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多