好的,所以我有一個具有文本/數據的apache服務器,我想發送到Java客戶端。問題是數據會經常變化,我不希望客戶端不斷地在服務器上進行讀取,因爲顯然我不想要一個持續的ping。我知道我可以創建一個客戶端套接字,但這需要我的用戶端口轉發才能訪問該服務器,這對我的用戶不起作用。Java - 如何在不經常ping的情況下如何接收數據
我在網上找到的是UDP punching可能工作或NAT傳輸,但我找不到任何示例如何在Java中執行它。
- 如果您有任何疑問,請隨時發表評論:)
好的,所以我有一個具有文本/數據的apache服務器,我想發送到Java客戶端。問題是數據會經常變化,我不希望客戶端不斷地在服務器上進行讀取,因爲顯然我不想要一個持續的ping。我知道我可以創建一個客戶端套接字,但這需要我的用戶端口轉發才能訪問該服務器,這對我的用戶不起作用。Java - 如何在不經常ping的情況下如何接收數據
我在網上找到的是UDP punching可能工作或NAT傳輸,但我找不到任何示例如何在Java中執行它。
你可以Recieve Server-Sent Event notifications,其中的服務器發送數據,使用PHP和JS爲例:
var source = new EventSource("demo_sse.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
PHP:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$time = date('r');
echo "data: The server time is: {$time}\n\n";
flush();
?>
你不能使用服務器發送的事件或websockets嗎? – frz3993
我沒有發現任何可以讓服務器隨機響應客戶端的東西。因爲它的apache網絡服務器,我不認爲你可以做事件。? – DrBrad