在服务器发送事件中,它总是向所有客户端发送相同的响应。但我想知道的是,如何使用Java只向一个客户端发送响应。
这是我在sw.js(SSE)内定义的事件。
这是我在sw.js(SSE)内定义的事件。
var eventSource = new EventSource("HelloServlet");
eventSource.addEventListener('up_vote',function(event){
console.log("data from s" , event.data);
var title = event.data;
self.registration.showNotification(title, {
'body': event.data,
'icon': 'images/icon.png'
})
});
我希望只向特定用户显示此通知,而不是所有人。HelloServlet是我的servlet,并包含以下内容:
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
String upVote = "u";
String downVote = "d";
for(int i=0; i<10; i++) {
writer.write("event:up_vote\n");
writer.write("data: "+ upVote +"\n\n");
writer.write("event:down_vote\n");
writer.write("data: "+ downVote +"\n\n");
writer.flush();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
writer.close();