我运行在我的球衣休息API和客户端的一些问题。泽西岛客户端打开太多连接
这是如何使用基于服务器端的方法IM:
@POST
@Path("/seed")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response addSeed(Seed seed) throws InterruptedException {
if (!Validator.isValidSeed(seed)) {
return Response.status(400).entity("{\"message\":\"Please verify your JSON!\", \"stat\":\"failed\"}")
.build();
}
save(seed);
return Response.status(200).build();
}
如果我在一段时间(true)循环运行Jersey客户端,有连接打开,将不会关闭。所以即时通讯遇到一个问题,我有很多连接打开,我的网络崩溃。所以我不能再使用我的服务器了。连接关闭后,我可以连接到服务器。
这是一个客户端:
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource(getBaseURI()).path("api/seed");
while (true) {
ClientResponse cr = service.header("Content-Type", "application/json").post(ClientResponse.class, seed);
System.out.println(cr);
cr.close();
我的问题是:
我能做些什么,在服务器端,以防止客户端打开一个新的连接?
如何指定最大连接数?
而我应该如何实现球衣客户端重用打开连接?
什么是您的服务器? – TheArchitect
我使用的是tomcat 6,我可以在server.xml中指定maxThreads的数量。但我不想更改server.xml,有没有办法在资源或客户端做到这一点? – user2504269