亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在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 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號