在Server Sent Event中,它始终向所有客户端发送相同的响应.但我想知道的是,如何使用java向只有一个客户端发送响应.
这是我在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'
})
});
Run Code Online (Sandbox Code Playgroud)
我想仅向特定用户显示此通知.不适合每一个人.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();
Run Code Online (Sandbox Code Playgroud) javascript client-server push-notification server-sent-events server
我正在尝试使用服务工作者的推送通知.使用我自己的服务器发送通知,eventSource用于建立连接.打开网页后,服务工作人员运行得很好.但它在几秒钟后停止.我想要的是运行服务工作者而不会停止.我希望它一直运行,直到浏览器打开.谁能推荐一种方法来做到这一点.?
这是我的ServiceWorker JS
/**
*
*/
'use strict';
var eventSource2 = new EventSource("Servlet");
console.log('Started', eventSource2);
eventSource2.addEventListener('install', function(event) {
eventSource2.skipWaiting();
console.log('Installed', event);
});
eventSource2.addEventListener('push',function(event) {
console.log(event.data);
var title = event.data;
self.registration.showNotification(title,{
'body' : event.data,
'icon' : 'http://icons.iconarchive.com/icons/designbolts/free-multimedia/1024/iMac-icon.png',
'tag' : 'click',
});
console.log("data from down", event.data);
});
eventSource2.addEventListener('activate', function(event){
console.log('Activated', event);
});
eventSource2.addEventListener('fetch', function(event) {
console.log('Push message', event);
});
Run Code Online (Sandbox Code Playgroud) javascript addeventlistener push-notification server-sent-events service-worker