由于我正在构建一个服务器,它应该同时运行许多连接,我试图使效率,而不是让任何幽灵连接打开。
在这里,我实现了一个“keep alive”方法,我的问题如下:如果我的服务器中打开了600个打开的连接,显然服务器需要时间在所有线程之间运行以检查keep alive,甚至从客户机获得keep alive消息-检查是否发送了keep alive消息的适当时间应该是多少。我想大约2分钟--所以服务器想要忙,从另一方面来说,我不想我的客户太频繁地发送数据…有什么建议吗?
600个打开的连接。假设每2分120秒发送一个keep-alive,这意味着每秒大约有5个线程准备发送一个keep-alive。假设所有连接都已启动,那么这五个线程将在不久之后再次准备好处理来自对等端的回音。因此,大约需要运行10个线程/秒来支持保留alives。
那是一个无关紧要的装载。
如果客户机很忙,那么这些客户机将不会被发送保留ALIVE,因此保留ALIVES的加载随着客户机变得很忙而减少。
线程“main”java.net.ConnectException:连接超时:在java.net.dualStackplainsockeTimpl.Connect0(本机方法)在java.net.dualStackplainsockeTimpl.socketConnect(DualStackplainsockeTimpl.java:69)在java.net.abstractplainsockeTi
我想了解应该如何处理保持活动状态,特别是服务器由于超时或使用单个套接字处理的请求的人为限制而关闭保持活动状态连接的“情况”。我知道从关闭的套接字读取将返回0。在这种情况下,客户端应该怎么办?它是否尝试打开新连接? 下面的测试代码确实定期执行超文本传输协议请求: 当套接字被服务器关闭时,我没有看到任何异常。这是否意味着当客户端尝试在内部打开新套接字时,只要它正常工作,任何[关于旧套接字被关闭而新套接
我目前正在开发一个支持保活连接的多线程代理服务器。在处理来自火狐浏览器的请求时,我看到了一些奇怪的问题。我使用localhost:10001/http://url连接到我的本地代理,我可以访问这个主机上的所有链接。过程如下。1.创建一个套接字,将其绑定到端口10001 2.接受连接,如果客户端连接了fork()3.继续将客户端请求处理为持久连接。 现在的问题是,当我在Firefox中打开一个新选项
我正忙着在嵌入式平台上实现自己的超文本传输协议服务器。从技术上讲,服务器符合HTTP 1.0,因此它希望客户端发送标头“连接:保持活着”以保持连接打开。 实现如下所示。我删除了解析HTTP头并执行请求的代码,以使帖子尽可能简短: Get_Request函数如下所示: 用英语描述这个服务器的工作方式:服务器接收第一个请求。它解析报头,如果发现“连接:保持活动”报头,它设置一个标志。服务器继续处理这个
由于失去了与Azure EventHub的连接,我需要将spring-cloud-stream Kafka套接字配置为活动状态。根据推荐页面https://github.com/azure/azure-event-hubs-for-kafka/blob/master/configuration.md ,我需要将设置为true,但在spring-cloud-stream中找不到要设置的配置
正在编写一个服务器,使用Java套接字的客户端聊天程序。这是我的服务器套接字类的代码。 客户端能够建立连接并向服务器发送消息。服务器也可以接收客户端发送的消息。问题是当消息从服务器发送时,客户端没有收到消息。这是我的客户端套接字代码。