SignalR 和 .NET 客户端在 ASP.NET WebForms 页面上不起作用

2023-12-21

我尝试在 .NET 4 下的 WebForms 应用程序中为仪表板构建通知。我已经下载了 SignalR 版本 1.2(.net 客户端和服务器)并准备了一个简单的通知示例。不幸的是它不起作用,我不明白为什么。如果我输入http://myserver.com/notificationSample/signalr/hubs http://myserver.com/notificationSample/signalr/hubsjavascript 代理出现,看起来没问题。

看看下面的实现,有人发现任何错误吗?

a) 集线器实施

[HubName("NewMessage")]
public class NewMessageNotifier : Hub
{
    public void NotifyDashboards()
    {

        Clients.All.NewMessageCreated();
    }
}

b) 通知调用者(服务器)~/Pages/NotificationCaller.aspx

public partial class NotificationCaller : Page
{
    private HubConnection connection;
    private IHubProxy proxy;

    protected void Page_Load(object sender, EventArgs e)
    {
            connection = new HubConnection( "http://myserver.com/notificationSample" );

            proxy = connection.CreateHubProxy( "NewMessage" );

            connection.Start().Wait();                

    }
    // it is handler for onclick event on Button control
    protected void NotifyDashboard(object sender, EventArgs e)
    {
        proxy.Invoke( "NotifyDashboards" ).Wait();
    }
}

c) 仪表板(客户端、监听器)~/Pages/Dashboard.aspx

public partial class Dashboard: BasePage
{
    private HubConnection connection;

    protected void Page_Load(object sender, EventArgs e)
    {
        connection = new HubConnection( "http://myserver.com/notificationSample" );

        var proxy = connection.CreateHubProxy("NewMessage");

        proxy.On("NewMessageCreated", ShowNotification);

        connection.Start();
    }

    private void ShowNotification()
    {
        ShowAlert("New message added!");
    }

}

你使用它的方式错误

Firstb 和 c 都是客户端,服务器自行启动,您只需添加

RouteTable.Routes.MapHubs();

to the

Application_Start

global.asax 中的方法

Second

如果您要使用网页作为客户端,您应该从 javascript 执行此操作,因为您现在所做的将不起作用,因为

connection.Start()

是异步的,请求将在执行任何操作之前结束,并且不会等待传入连接,因为所有连接都将被处理

现在该怎么办呢?这里需要很多页,所以这里有一些链接

简单教程 http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

集线器服务器 API http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr

集线器 JavaScript API http://www.asp.net/signalr/overview/hubs-api/hubs-api-guide-javascript-client

如果你错过了,解释什么是 SignalR、它如何工作以及一个简单的应用程序的视频 http://channel9.msdn.com/Events/Build/2012/3-034你可以找到here https://github.com/SignalR/Samples

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignalR 和 .NET 客户端在 ASP.NET WebForms 页面上不起作用 的相关文章

随机推荐

  • MSMQ 或 Service Broker 或用于 FIFO 消息处理的批量插入?

    我们有一个场景 需要针对传入的实时事件对数据库使用更新 插入查询 我们可以选择下面提供的任何一个选项 1 MSMQ 2 SQL 服务代理 3 自定义构建的缓存机制 使用文件缓存 批量插入 触发器将插入转换为更新 如果行已存在 等 我们没有使
  • 如何在 GitHub 操作构建期间引用我的存储库中的目录?

    我有一些测试数据用于 pytest 的单元测试 我用环境变量设置了它们的位置 查看我的 pytest 日志 构建会看到环境变量 但它们引用的位置不存在 在 GitHub Actions 文档中 存储库应位于 home runner Repo
  • 在 Glassfish 服务器上的 Web 服务中使用数据库时出现“找不到合适的驱动程序”错误

    我有一个 Java Web 应用程序 并使用来自消费者 Java 应用程序的操作来处理 MySQL 数据库 当我尝试连接到数据库时 我得到 No suitable driver found for jdbc mysql localhost
  • 检索 Delphi 窗口句柄

    我正在尝试从外部应用程序获取 Delphi 应用程序的窗口句柄 我可以看到创建了一些窗口 TApplication TFrmMain 和其他一些窗口 并且我知道 TApplication 是 控制器 但从不可见 但是 我可以读取真实窗口的值
  • Rails form_for 提交按钮不起作用

    感谢您的耐心等待 对于 Rails 来说还是很陌生 使用 Rails 3 2 为一个简单的应用程序制作注册页面 我的问题是 无论表单中的信息是否有效 表单上的提交按钮都不会产生任何效果 用户模型和数据库似乎都工作正常 如果我从 Rails
  • 保存带有透明度/Alpha 通道的 TIFF

    这是我的问题 我需要创建一个 TIFF 和一个 PNG 其中调色板包含特定颜色和 Alpha 我实际上能够处理 PNG 但不能处理 TIFF 我在互联网上搜索并发现 TIFF 应该处理透明度 但并非所有软件都可以 我尝试了很多方法来加载 T
  • 非标准评估和 PackedArray

    我之前有过asked https stackoverflow com questions 4181470 custom function with non standard evaluation behaves like table怎么做a
  • 更新现有表/模型列/字段?

    如何更新表中的列和列数据类型PeeWee http docs peewee orm com en latest index html 我已经创建了表Person在我的模型的数据库中 但我现在已向模型添加了一些新字段 并更改了某些现有字段 列
  • 在 Golang 中将表单值分配给结构体

    我正在 Golang 中开发 API Rest 我正在使用 Gorm 所以我有代表数据库表的结构 在Create我收到一个带有值的表格 但现在我怀疑如何立即将所有值分配给结构 因为我有一个包含 500 个字段的表 并且我无法逐一进行分配 我
  • 如何在 woocommerce 中获得免费送货的最低订单金额

    我如何获取获得免费送货所需的最低订单金额 woocommerce free shipping min amount在 woocommerce 的管理面板 woocommerce gt 设置 gt 送货 gt 免费送货 gt 最低订单金额 中
  • Ehcache 2 maven依赖

    在我的 pom 中 我有 ehcache 2 依赖项
  • 将 SASS/SCSS 与 Django 集成

    我想将 SASS SCSS 与 Django 应用程序一起使用 我点击了链接https bitbucket org synic django sass https bitbucket org synic django sass 我使用 su
  • 从 C 中的 char* 数组中删除空格

    我正在开发一个插件C对于游戏模拟器 我想在检查输入消息是否包含任何网站网址之前删除聊天消息中的所有空格 所以 我有这样的函数来消除空白 从输入消息中删除空格 char deblank char input int i j char outp
  • 当Android应用程序关闭/设置为后台时如何执行后台任务?

    我的 Android 4 应用程序连接到自定义 Web 服务 用于每隔几分钟同步一次数据 为了确保在线数据始终是最新的 我想在应用程序关闭 发送到后台时触发同步 在 iOS 下这很简单 听applicationDidEnterBackgro
  • 如何将 CloudML Alpha 模型转换为 SavedModel?

    在CloudML在线预测服务的alpha版本中 导出模型的格式为 inputs x x y bytes y g add to collection inputs json dumps inputs outputs a a b bytes b
  • Zabbix JMX Tomcat监控

    我一直在尝试设置 Zabbix 来监控 2 台不同的 Amazon EC2 机器上的 2 台 tomcat 服务器 但没有成功 主机上的 Z 为绿色 但 JMX 为红色并出现这些错误 ZBX TCP READ 失败 4 系统调用中断 其他错
  • 在调整应用程序窗口大小之前,jPanel 不会刷新

    我的 jPanel 有一个问题 我有一个按钮 它从字符串输入 数学公式 中输入 PNG 图像 然后它将在 jPanel 中重新绘制旧图像 问题就来了 图像已更改 但 jPanel 不会重新绘制 直到我手动调整应用程序窗口的大小 看起来面板在
  • 一旦会话过期,Spring MVC 将用户重定向到登录页面

    我在会话中存储了一个用户 bean SessionAttributes UserBean 在我的控制器中 我的目标是在会话过期时将用户重定向到登录 错误页面 以下是我的代码片段 RequestMapping value searchOppo
  • 从 .CSV 文件中选择特定范围的列[重复]

    这个问题在这里已经有答案了 我有一个包含 78000 列的 CSV 文件 我正在尝试选择第 2 100 102 200 列和最后 300 列 其余列需要跳过 我使用 numpy loadtxt 来选择列范围 numpy loadtxt in
  • SignalR 和 .NET 客户端在 ASP.NET WebForms 页面上不起作用

    我尝试在 NET 4 下的 WebForms 应用程序中为仪表板构建通知 我已经下载了 SignalR 版本 1 2 net 客户端和服务器 并准备了一个简单的通知示例 不幸的是它不起作用 我不明白为什么 如果我输入http myserve