0
我試圖實現播放框架1.2.5播放框架SSE關閉分塊響應
我怎麼能知道叫EventSource.close()
客戶端(或關閉了瀏覽器窗口服務器端事件服務器,例如)?這是服務器代碼的簡化一塊我使用:
public class SSE extends Controller {
public static void updater() {
response.contentType = "text/event-stream";
response.encoding = "UTF-8";
response.status = 200;
response.chunked = true;
while (true) {
Promise<String> promise = Producer.getNextMessage();
String msg = await(promise);
response.writeChunk("data: " + msg + "\n\n");
}
}
}
Producer
應處理排隊,Promise
對象,併產生輸出,但我要知道什麼時候該停止(盡顯其隊列)。如果輸出流被關閉,我會期待response.writeChunk()
拋出一些異常,但是沒有任何異常。
有一個類似的例子,不與SSE處理,但只有大塊相反,在http://www.playframework.com/documentation/1.2.5/asynchronous#HTTPresponsestreaming