【问题标题】:SignalR client is not being connectedSignalR 客户端未连接
【发布时间】:2014-04-01 16:30:06
【问题描述】:

这是我的中心类:

public class ZaaloverzichtHub : Hub
{
    IHubContext context = GlobalHost.ConnectionManager.GetHubContext<ZaaloverzichtHub>();

    private static readonly Lazy<ZaaloverzichtHub> instance = new Lazy<ZaaloverzichtHub>(() => new ZaaloverzichtHub());

    public static ZaaloverzichtHub Instance { get { return instance.Value; } }



    public void Send()//PartialViewResult zaaloverzicht)
    {
        // Call the broadcastMessage method to update clients.
        context.Clients.All.broadcastMessage("test");
    }


}

这是我认为的 javascript:

$(function () {
    var connection = $.connection.ZaaloverzichtHub;

    connection.client.broadcastMessage = function (zaaloverzicht) {
        window.alert(zaaloverzicht);
    }
    $.connection.hub.start();
});

我正在从我的控制器调用 Send() 方法

var hub = ZaaloverzichtHub.Instance;
hub.Send();

正在调用集线器中的 Send() 方法,但是客户端没有发生任何事情。我知道客户端没有连接到集线器,因为当我制作这样的方法时:

    public override System.Threading.Tasks.Task OnConnected()
    {
        return base.OnConnected();
    }

并放置一个断点,断点永远不会被命中。

【问题讨论】:

  • 好吧,我搞定了。原来我引用了一个旧的 jquery 库,它没有包含在我的项目中。

标签: asp.net asp.net-mvc asp.net-mvc-3 signalr


【解决方案1】:

SignalR 的约定是在客户端使用小写命名方案,除非在 c# 中使用属性显式命名

var connection = $.connection.zaaloverzichtHub;//note the case change on Z to z

【讨论】:

  • 谢谢。我实际上知道这个约定,但由于某种原因错过了。但是,这并不能解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 2012-04-05
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多