【发布时间】:2018-05-16 01:44:21
【问题描述】:
我试图在这个视频https://www.youtube.com/watch?v=rhCKCKD0KnA中做一个 SSE 的例子
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
PrintWriter printWriter = null;
while(true) {
try {
double rnd = Math.random() * 10000;
printWriter = response.getWriter();
printWriter.print("Rnd: " + rnd);
response.flushBuffer();
Thread.sleep(5000);
}
catch(IOException | InterruptedException e) {
e.printStackTrace();
printWriter.close();
break;
}
}
和客户端
window.onload = function () {
startButton.onclick = () => {
eventSource = new EventSource('http://localhost:8080/byteslounge-1/sse_test');
eventSource.onopen = () => {
displayTextArea.value += 'connected...' + '\n';
};
eventSource.onmessage = (message) => {
displayTextArea.value += message.data + '\n\n';
};
eventSource.onerror = () => {
displayTextArea.value += 'error occured...' + '\n';
};
startButton.disabled = true;
};
takeMsg.onclick = () => {
eventSource.onmessage = (message) => {
displayTextArea.value += message.data + '\n\n';
};
};
stopButton.onclick = () => {
eventSource.close();
startButton.disabled = false;
};
clearText.onclick = () => {
displayTextArea.value = '';
}
}
连接正常,但无法接收 onMessage 中的任何数据。服务器/客户端上没有错误/警告。我正在使用 FF 64 位最新版本/JDK 1.8/Payara。
【问题讨论】:
标签: java html jakarta-ee long-polling payara