【发布时间】:2016-01-27 07:05:08
【问题描述】:
我正在使用服务器发送事件来显示通知。我创建了一个服务工作者,并在我运行项目后使用 EventSource 与服务器连接(在我的情况下我使用了一个 servlet。)。一切正常。
但是事件里面的内容是计数执行的。我想知道为什么? 我的另一个问题是
一旦我关闭标签。它停止发送通知。服务人员正在运行,服务器也在运行。但为什么会停止?
这是我的服务工作者代码。
var eventSource = new EventSource("HelloServ");
//MyDiv1 is a custom event
eventSource.addEventListener("MyDiv1",function(event){
console.log("data from down" , event.data);
var title = event.data;
//below notification is displaying continuously. why ?
var notification = new Notification(title, {
icon: 'http://cdn.sstatic.net/stackexchange/img/logos/so/so-icon.png',
body: event.data,
});
notification.onclick = function () {
window.open("http://ageofthecustomer.com/wp-content/uploads/2014/03/success.jpg");
};
console.log("down");
});
这是我的 servlet 代码;
response.setContentType("text/event-stream");
response.setCharacterEncoding("UTF-8");
PrintWriter writer = response.getWriter();
String upVote = "my up vote";
writer.write("id:1\n");
writer.write("event:myid\n");
writer.write("data: "+ upVote +"\n");
writer.write("data: "+"new data 2\n\n");
System.out.println("servlet "+ i);
writer.flush();
i++;
writer.close();
【问题讨论】:
-
这不是您应该实现推送通知的方式。 Service Worker 并不总是在运行,它的生命周期很短。我建议你看看这里的演示:serviceworke.rs/push-simple.html
-
无法访问该网址。你能再检查一下吗?
-
serviceworke.rs/push-simple.html URL 正确。
标签: javascript servlets push-notification server-sent-events service-worker