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

我将创建一个与 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 服务器),那就很高兴了。我不发送大数据,只发送小字符串。


神不在的星期二
浏览 93回答 1
1回答

白板的微信

如果您从浏览器发送,websocket 将是一个很好的解决方案,因为您不需要每次都重建网络连接。如果您在后端服务之间发送,请使用一些 RPC 或套接字通信来保持连接处于活动状态。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java