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