我將創建一個與 REST API 服務器通信的客戶端,由 Spring 框架提供支持。在某些情況下,我想從客戶端 -> 服務器發送數據,服務器應該盡可能快地回復,然后我將從客戶端 -> 服務器發送數據,服務器盡可能快地從服務器 -> 客戶端發送數據盡可能。重復此操作,直到客戶端的用戶不再發回數據。我想我可以在 Spring 中使用 REST API 來做到這一點,但是還有更好的方法嗎?我的意思是更快的發送數據的方式?或者只要服務器和客戶端之間有良好的通信,REST API 就足夠快了?我正在使用 Apache HTTPD 庫與 Spring REST API 進行交互。有用。下面是我通過登錄連接 REST API 的示例。 try { CredentialsProvider credsProvider = new BasicCredentialsProvider(); credsProvider.setCredentials(new AuthScope(serverAddress.getText(), Integer.parseInt(serverPort.getSelectedItem().getText())), new UsernamePasswordCredentials(userName.getText(), password.getText())); CloseableHttpClient httpclient = HttpClients.custom().setDefaultCredentialsProvider(credsProvider).build(); connections.setHttpclient(httpclient); HttpGet httpget = new HttpGet("http://" + serverAddress.getText() + ":" + serverPort.getSelectedItem().getText() + "/user/connect?username=" + userName.getText()); CloseableHttpResponse response = httpclient.execute(httpget); String entity = EntityUtils.toString(response.getEntity()); if (entity.equals("connected") == true) { connectServerButton.setText("Disconnect from the server"); dialogs.alertDialog(AlertType.INFORMATION, "Connected", "You are now connected"); connections.setConnected(true); connections.setServerAddress(serverAddress.getText()); connections.setServerPort(serverPort.getSelectedItem().getText()); connections.setUserName(userName.getText()); response.close(); } else { dialogs.alertDialog(AlertType.ERROR, "Not connected", "Failed to login"); } } catch (IOException e) { dialogs.exception("Cannot connect server", e); }這就是我連接 REST API 并與之對話的方式。如果我想更快地溝通,您有更好的方法嗎?我并不是說我需要全雙工。那很好,但不是必需的。我要求的是服務器的快速響應。如果服務器能夠在 10 毫秒內響應(自己的 LAN 網絡、快速的計算機、快速的 DHCP 服務器),那就很高興了。我不發送大數據,只發送小字符串。
1 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
如果您從瀏覽器發送,websocket 將是一個很好的解決方案,因為您不需要每次都重建網絡連接。
如果您在后端服務之間發送,請使用一些 RPC 或套接字通信來保持連接處于活動狀態。
添加回答
舉報
0/150
提交
取消