Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我在使用PUBSUB订阅时不能PING?_C#_Azure_Redis_<img Src="//i.stack.imgur.com/WM7S8.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">servicestack.redis - Fatal编程技术网 servicestack.redis,C#,Azure,Redis,servicestack.redis" /> servicestack.redis,C#,Azure,Redis,servicestack.redis" />

C# 为什么我在使用PUBSUB订阅时不能PING?

C# 为什么我在使用PUBSUB订阅时不能PING?,c#,azure,redis,servicestack.redis,C#,Azure,Redis,servicestack.redis,我在Azure上使用PUBSUB时遇到问题 Azure防火墙将关闭任何空闲时间长度的连接。时间的长短有很多争论,但人们认为大约是5-15分钟 我使用Redis作为消息队列。为此,ServiceStack.Redis库提供一个RedisMqServer,该服务器订阅以下通道: mq:topic:in 在后台线程上,它阻止从套接字接收数据,等待从Redis接收消息。问题是: 如果等待Redis消息的套接字空闲任意时间长度,Azure防火墙 以静默方式关闭连接。我的应用程序不知道它是什么 现在正在等

我在Azure上使用PUBSUB时遇到问题

Azure防火墙将关闭任何空闲时间长度的连接。时间的长短有很多争论,但人们认为大约是5-15分钟

我使用Redis作为消息队列。为此,ServiceStack.Redis库提供一个RedisMqServer,该服务器订阅以下通道:

mq:topic:in
在后台线程上,它阻止从套接字接收数据,等待从Redis接收消息。问题是:

如果等待Redis消息的套接字空闲任意时间长度,Azure防火墙 以静默方式关闭连接。我的应用程序不知道它是什么 现在正在等待一个关闭的连接(就其而言 打开)。背景线程被有效地挂起

我曾想过实现某种保持活动状态的方法,即等待消息一分钟,但如果没有收到消息,则通过两个目标PING服务器:

  • 告诉Azure此连接已关闭,以保持连接打开 仍在使用中
  • 检查连接是否已关闭(如果已关闭) 重新开始并重新订阅
  • 然而,当我实现这一点时,我发现我无法在订阅时使用PING命令??不知道为什么会这样,但有人有其他的解决方案吗

    我不想定期取消订阅和重新订阅,因为我可能会错过邮件


    我已经阅读了以下文章:它讨论了Azure负载平衡器如何在4分钟后断开连接。但是,即使我可以保持一个连接处于活动状态,我仍然需要实现第二个目标,即如果由于另一个原因(redis节点关闭)导致连接中断,则重新启动订阅。

    当客户端订阅时,该连接基本上被阻止发送命令,因为它用于侦听传入消息。一种可能的解决方法是在频道上定期发布keepalive消息。

    当客户端订阅时,该连接基本上被阻止发送命令,因为它用于侦听传入消息。一种可能的解决方法是在频道上定期发布keepalive消息。

    当客户端订阅时,该连接基本上被阻止发送命令,因为它用于侦听传入消息。一种可能的解决方法是在频道上定期发布keepalive消息。

    当客户端订阅时,该连接基本上被阻止发送命令,因为它用于侦听传入消息。一种可能的解决方法是在频道上发布定期的keepalive消息。

    我刚刚在Redis的
    不稳定的
    分支中实现了Pub/Sub模式下的PING支持:


    这将在接下来的几天内后端口到Redis 2.8 stable中。

    我刚刚在Redis的
    Stability
    分支中实现了Pub/Sub模式下的PING支持


    这将在接下来的几天内后端口到Redis 2.8 stable中。

    我刚刚在Redis的
    Stability
    分支中实现了Pub/Sub模式下的PING支持


    这将在接下来的几天内后端口到Redis 2.8 stable中。

    我刚刚在Redis的
    Stability
    分支中实现了Pub/Sub模式下的PING支持


    这将在未来几天内后端口到Redis 2.8 stable中。

    这是一个问题,因为我们在Azure中托管Redis时处理keepAlive数据包。我们很快就会把它修好


    此外,如上所述,您可以通过ping手动保持连接的活动状态。对于sub/pub连接,您现在可以使用的一种黑客方法是调用随机频道的unsubscribe。(这就是StackExchange.Redis所做的)

    这是一个问题,因为我们在Azure中托管Redis时处理keepAlive数据包。我们很快就会把它修好


    此外,如上所述,您可以通过ping手动保持连接的活动状态。对于sub/pub连接,您现在可以使用的一种黑客方法是调用随机频道的unsubscribe。(这就是StackExchange.Redis所做的)

    这是一个问题,因为我们在Azure中托管Redis时处理keepAlive数据包。我们很快就会把它修好


    此外,如上所述,您可以通过ping手动保持连接的活动状态。对于sub/pub连接,您现在可以使用的一种黑客方法是调用随机频道的unsubscribe。(这就是StackExchange.Redis所做的)

    这是一个问题,因为我们在Azure中托管Redis时处理keepAlive数据包。我们很快就会把它修好


    此外,如上所述,您可以通过ping手动保持连接的活动状态。对于sub/pub连接,您现在可以使用的一种黑客方法是调用随机频道的unsubscribe。(这就是StackExchange.Redis所做的)

    多么巧合-安特里斯今天修补了这个::)多么巧合-安特里斯今天修补了这个::)多么巧合-安特里斯今天修补了这个::)多么巧合-安特里斯今天修补了这个::)太棒了!我将在PUBSUB期间将此功能添加到PING Redis客户端,作为ServiceStack.Redis中的保持活动功能。我正在使用Azure托管的Redis作为我的服务器,所以我无法控制它们的版本,但我会密切关注并尽快使用它。非常感谢!棒 极 了我将在PUBSUB期间将此功能添加到PING Redis客户端,作为ServiceStack.Redis中的保持活动功能。我正在使用Azure托管的Redis作为我的服务器,所以我无法控制它们的版本,但我会密切关注并尽快使用它。非常感谢!棒 极 了我将在PUBSUB期间将此功能添加到PING Redis客户端,作为ServiceStack.Redis中的保持活动功能。我正在使用Azure托管的Redis作为我的服务器,所以我无法控制它们的版本,但我会密切关注并尽快使用它。非常感谢!棒 极 了我将在PUBSUB期间将此功能添加到PING Redis客户端,作为ServiceStack.Redis中的保持活动功能。我使用Azure托管的Redis作为我的服务器,因此我无法控制