【发布时间】:2015-08-06 08:04:56
【问题描述】:
我开发了一个基于 Java 的客户端,它使用 Java 套接字连接到服务器。对于信息交换,我使用了 http-Protocol。基本上,我通过套接字建立连接,并在客户端编写了一个向服务器发出 http 请求的方法。我要连接的服务器是我自己开发的一个非常简单的服务器。我想问一下,是否可以通过套接字使用请求方法进行长轮询。
由于我的班级客户端中有一个请求方法,我有两个选项: 连续请求: 包括每毫秒发送一个请求,询问是否发生了新事件。 长时间请求(称为长轮询):客户端发送请求。如果有响应,服务器将回答。否则它不会发送响应并且请求将超时。这时客户端发送一个新的请求
这是我的模型的描述:
I wrote a simple http-client and a simple http-server.
*The client has a method request
* the server has a method respond.
*The client send a get-request by using its request-method to my server (gives back a command to the client)
**That server reponds to this request using its respond-method.
如何扩展我的程序? 如何使用可用的客户端和服务器实现长轮询?
【问题讨论】:
-
定义“长轮询”。您受到 HTTP 语义的限制。不清楚你在问什么。
-
我已经编写了一个客户端-服务器模型:一个客户端和一个服务器。所以我写了一个简单的http-client和一个简单的http-server。客户端有一个方法请求,服务器有一个方法响应。客户端通过使用它的方法请求向我的服务器发送一个获取请求,并且该服务器使用它的响应方法响应这个请求。该程序运行良好。如何扩展我的程序。如何使用可用的客户端和服务器实现长轮询?
-
长轮询是什么意思?
-
任何代码?你为什么要自己实现一个http服务器?例如,JDK 本身甚至包含一个。你使用异步 IO 吗?如果客户端数量增长并超过某个限制,那么长时间轮询可能会杀死您的 VM。
-
我正在使用 java 模拟嵌入在设备中的 http-server。所以我不需要复杂的http-requets。对于 IO,我使用的是 java.io 的标准类。我应该使用循环并将请求方法放入其中吗?
标签: java sockets long-polling polling