Javascript 新加坡没有';t调用服务器端方法并将数据广播回客户端

Javascript 新加坡没有';t调用服务器端方法并将数据广播回客户端,javascript,asp.net,owin,Javascript,Asp.net,Owin,我有一个定期运行的作业,它注册到OWIN主机应用程序中,我将的项目作为参考,我希望使该作业类似于stock ticker类,它能够将数据广播到JavaScript客户端 然而,在我遵循了这个例子,并把一切都做好之后,一些奇怪的问题发生了,我不知道为什么。 (1) 流量将自动降级为长轮询,而不是像股票行情器那样使用服务器发送事件。 (2) 我在服务器端调用了一个动态方法,并在客户端定义了该方法,但从未调用过 这是我的服务器端集线器定义 [HubName("healthCheckHub")] pu

我有一个定期运行的作业,它注册到OWIN主机应用程序中,我将的项目作为参考,我希望使该作业类似于stock ticker类,它能够将数据广播到JavaScript客户端

然而,在我遵循了这个例子,并把一切都做好之后,一些奇怪的问题发生了,我不知道为什么。 (1) 流量将自动降级为长轮询,而不是像股票行情器那样使用服务器发送事件。 (2) 我在服务器端调用了一个动态方法,并在客户端定义了该方法,但从未调用过

这是我的服务器端集线器定义

[HubName("healthCheckHub")]

public class HealthCheckHub : Hub
{

   private readonly PublicVendorCloudHealthJob _healthCheckjob;

    public HealthCheckHub()
    {
        this._healthCheckjob = PublicVendorCloudHealthJob.Instance;
    }

    public IEnumerable<HealthCheckItemResponse> GetAllHealthCheckResponses()
    {
        return this._healthCheckjob.GetAllHealthCheckResponses();
    }
}
对于JS客户端,在获得生成的代理之后,我做了如下操作

signalrService.signalr().then((value) => {
    if (value === "success"){
        const healthCheckHub = $.connection.healthCheckHub;
        const healthCheckHub2 = $.connection.hub.proxies.healthcheckhub;
        healthCheckHub.client.publishHealthChecks = (data) => {
            console.log(data);
        };
        healthCheckHub2.client.publishHealthChecks = (data) => {
            console.log(data);
        };
        $.connection.hub.logging = true;
        $.connection.hub.start().done(() => {
            const defaultData = healthCheckHub.server.getAllHealthCheckResponses();
            console.log(defaultData);
        });
    }
});
真的需要一些帮助,我花了大约一周的时间才弄明白,谢谢你的帮助

附言。 下面列出了我正在使用的东西 (1) 铬v.51 (2) SingalR.core v.2.2.0 (3) 奥温

        app.UseCors(CorsOptions.AllowAll);
        GlobalHost.Configuration.KeepAlive = null;
        GlobalHost.Configuration.TransportConnectTimeout = TimeSpan.FromSeconds(5);
        app.MapSignalR();
signalrService.signalr().then((value) => {
    if (value === "success"){
        const healthCheckHub = $.connection.healthCheckHub;
        const healthCheckHub2 = $.connection.hub.proxies.healthcheckhub;
        healthCheckHub.client.publishHealthChecks = (data) => {
            console.log(data);
        };
        healthCheckHub2.client.publishHealthChecks = (data) => {
            console.log(data);
        };
        $.connection.hub.logging = true;
        $.connection.hub.start().done(() => {
            const defaultData = healthCheckHub.server.getAllHealthCheckResponses();
            console.log(defaultData);
        });
    }
});