为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Spring框架中实现服务器和客户端之间的快速通信?

如何在Spring框架中实现服务器和客户端之间的快速通信?

神不在的星期二 2023-08-04 15:40:59
我将创建一个与 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 或套接字通信来保持连接处于活动状态。


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信