我将创建一个与 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
提交
取消