我運行在我的球衣休息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