gpt4 book ai didi

signalr - 对 SignalR keep-alive ping 使用react

转载 作者:行者123 更新时间:2023-12-02 00:22:55 24 4
gpt4 key购买 nike

SignalR 服务器应用程序可以对 SignalR 内部使用的保持事件 ping 使用react吗?

我正在开发一个应用程序,它将为信号客户端执行昂贵的查询。查询不会在与服务器连接的同一台计算机上执行。查询的运行成本很高,并且易于重新启动,因此执行工作的工作人员不希望为断开连接的客户端或无法访问或关闭的服务器工作;他们希望确保客户仍然在那里。只需让客户端以一定的时间间隔对 Web 服务器执行 ping 操作,然后 Web 服务器就可以将 ping 传递给工作人员,即可轻松完成此操作。

public class PingedHub : Hub
{
private readonly IPingListener _listener;

public Hub(IPingListener listener)
{
_listener = listener;
}

public Ping()
{
_listener.Ping(Context.ConnectionId);
}
}

SignalR already does this 。为了检测丢失的连接,如果在由 GlobalHost.Configuration.KeepAlive 配置的时间段内没有传输其他流量,SignalR 会发送 Keep-Alive ping。如果在由 GlobalHost.Configuration.ConnectionTimeout 配置的较长时间内没有收到任何流量,它会断开客户端连接并引发 OnDisconnected

是否可以连接到现有系统以确保客户端已连接,或者客户端是否需要发送冗余 ping?

最佳答案

无需连接 SignalR 连接系统。 ping 不会是多余的;如果您的客户端发送 ping 的频率至少与 GlobalHost.Configuration.KeepAlive 一样频繁,则 SignalR 将不会发送自己的保持事件 ping。

如果您确实找到了连接 SignalR 系统的方法,您将面临一个新问题。当存在其他流量时,不会发送保持事件 ping,但您的工作人员仍想知道客户端是否仍然事件。如果通信 channel 由于某种其他原因而处于事件状态,您必须选择是向工作人员发送 ping 垃圾邮件,还是使用某种中间系统来限制它们。

关于signalr - 对 SignalR keep-alive ping 使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171179/

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