【发布时间】:2015-01-20 02:16:19
【问题描述】:
我正在尝试将 JavaScript EventSource 连接到 Servlet。我有以下 JavaScript 代码:
var eventSource = new EventSource("notify?userId=123456");
eventSource.onopen = function(e){
console.log("Connection Opened");
};
eventSource.onmessage = function(e){
console.log("Message: " + e.data);
};
eventSource.onerror = function(e){
console.log("Error");
};
notify 是我的 Servlet 的位置(在我使用 @WebServlet("/notify") 的 Servlet 上),?userId=123456 是我要传递给的参数小服务程序。在开发者控制台中,上述代码不会产生任何日志。但是,在服务器端,我可以看到代码确实连接了,但是,每当我尝试向客户端发送消息时,onmessage 函数都不会被命中。如果我删除参数并执行以下操作:
var eventSource = new EventSource("notify");
在开发者控制台中,每隔几秒我就会得到:
Connection Opened
Error
它似乎在不断重复。我在这里错过了什么?
【问题讨论】:
-
看来问题与我的服务器实现有关。如果没有传递参数,则返回,如果有参数,则保存异步上下文以供以后使用,因此它似乎不被视为“已连接”。我将不得不尝试找到解决此问题的方法。
标签: java javascript servlets server-sent-events