gpt4 book ai didi

asp.net - SignalR 长轮询传输

转载 作者:行者123 更新时间:2023-12-02 22:25:45 30 4
gpt4 key购买 nike

我将 SignalR 0.5.3 与集线器一起使用,并且我明确地将传输设置为长轮询,如下所示:

$.connection.hub.start({ transport: 'longPolling' }, function () {
console.log('connected');
});

使用这样的配置(在 global.asax.cs Application_Start 方法中):

GlobalHost.DependencyResolver.UseRedis(server, port, password, pubsubDB, "FooBar");
GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(2);
GlobalHost.Configuration.KeepAlive = TimeSpan.FromSeconds(15);

然而,长轮询似乎在开发(IIS express)和生产(IIS 7.5)环境中都不起作用。连接似乎已正确建立,但是长轮询请求总是超时(约 2 分钟后),然后重新连接。来自 IIS 的日志是 here .第一次超时请求的响应:

{"MessageId":"3636","Messages":[],"Disconnect":false,"TimedOut":true,"TransportData":{"Groups":["NotificationHub.56DDB6692001Ex"],"LongPollDelay":0}}

超时重新连接响应如下所示:

{"MessageId":"3641","Messages":[],"Disconnect":false,"TimedOut":true,"TransportData":{"Groups":["NotificationHub.56DDB6692001Ex"],"LongPollDelay":0}}

如果您能就此问题提供帮助,我将不胜感激。谢谢。

编辑

如果重新连接意味着新的长轮询周期的开始,为什么当 global.asax.cs 中的 KeepAlive 设置设置为 15 秒时它会在约 2 分钟后启动?问题是我在 IIS 前面有一个反向代理,它会在 25 秒后超时保持事件请求,因此当达到此反向代理超时时我会收到 504 响应。

最佳答案

看看这篇文章:How signalr works internally .长拉的工作方式是在设定的时间后连接超时或收到响应并重新拉(重新连接)

关于asp.net - SignalR 长轮询传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12991597/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com