当前位置: 首页 > 知识库问答 >
问题:

如何发送TCP保活数据包

李云
2023-03-14

我需要在javascript客户机和Web API控制器操作之间建立一个长时间运行(比如10分钟)的连接。Web应用程序的Azure负载均衡器的默认超时时间为4分钟,目前还无法配置。

共有1个答案

丁长卿
2023-03-14
var socketsHandler = new SocketsHttpHandler
{
      PooledConnectionIdleTimeout = TimeSpan.FromHours(27),//Actually 5 mins can be idle at maximum. Note that timeouts longer than the TCP timeout may be ignored if no keep-alive TCP message is set at the transport level.
      MaxConnectionsPerServer = 10
};
client = new HttpClient(socketsHandler);

正如你所看到的,虽然我设置的空闲超时为27小时,但实际上它只是保持5分钟的活着。

因此,最后,我只需每隔1分钟使用相同的HttpClient调用目标endpoint。在这种情况下,总是有一个既定的连接。您可以使用netstat来检查。工作很好。

 类似资料:
  • 虽然之前我们已经提到过不建议直接使用 LogStash::Inputs::TCP 和 LogStash::Outputs::TCP 做转发工作,不过在实际交流中,发现确实有不少朋友觉得这种简单配置足够使用,因而不愿意多加一层消息队列的。所以,还是把 Logstash 如何直接发送 TCP 数据也稍微提点一下。 配置示例 output { tcp { host => "19

  • 我的问题是,我已经创建了一个传输控制协议,当它停留没有传输任何数据约1小时,它已经从服务器断开连接,但它不通知我,它已断开连接,我应该发送保持活动的数据包到服务器吗?或者我应该发送保持活动的数据包从服务器到客户端?或者我应该发送两个?

  • 我正在开发一个应用程序,该应用程序收集用户选择(从复选框中)并将其发送到一个新活动(当按下按钮时)。在新活动中,将收集一个新数据(editText)并将新收集的接收数据合并并通过电子邮件发送。 当我按下第一个按钮将复选框数据发送到新活动时,我得到一个错误: 应用程序意外停止 下面是代码: 复选框转换方法为: 所以,如果有任何错误,请告诉我。

  • 驻留在AWS专用子网中的Java应用程序通过AWS Nat网关连接到http服务器。我正在通过向HTTP服务器调用POST请求。完成该请求需要10分钟以上。我已将套接字超时和连接超时配置为1小时,因为这是一项后台任务。但是中间AWS NAT网关将在300秒[5分钟]后发回RST数据包,并导致连接重置,我无法增加NAT网关超时。所以我需要从我的应用程序方面处理这个问题。 我的策略是使用TCP保持活动

  • 我想在片段的活动中使用一些文本视图(cityField,updatedField)。我知道在活动中使用它们会更容易,但问题是,由于要获取一些JSON数据,我不得不在Fragment上加入一些代码 我已经得到了活动代码的ID 现在我想在我的片段中使用它们 所以问题是 - 这可能吗?如果可能,如何? 我已经检查了这个网站上的一些答案 - 在Android中将数据从活动发送到片段 如何使用捆绑包将数据从