我认为从Java发出HTTP SSE并处理这些连接不应该那么复杂,但我不知道如何做到这一点。
我有一台服务器(JavaSE11)和多个客户端(带有JavaScript的Web浏览器),它们开始监听来自服务器的消息。(我正在本地主机上测试)
客户端非常简单:
var evtSource = new EventSource("localhost/javaapp");
evtSource.onmessage = function(e) {
console.log("message: " + e.data);
}
evtSource.onerror = function(e) {
console.log("sse failed");
}
但对于服务器端,我不知道。经过一些调查,我发现我也许应该使用
javax.ws.rs.sse
API,但它只有接口,您发现的示例代码片段使用了大量@注释,这是我想要避免的。
我需要这个API吗?或者我可以用合适的头创建一个基本的HTTP连接吗?那么,如何实现SSE的所有功能呢?自动保持活力等等。。。
目的是分别处理所有客户。他们订阅服务器,如果其中一个服务器发生事件,服务器会向该服务器发送消息。所以,这不是向所有人播放同样的内容。