我正在开发一个简单的SSE javascript客户端,并查看以下各种示例:
var source = new EventSource(
'/event-stream?channel=siteevent&t=' + new Date().getTime());
source.addEventListener('error', function (e) {
console.log(e);
addEntry({ msg: "ERROR!", cls: "error" });
}, false);
$.ss.eventReceivers = { "document": document };
$(source).handleServerEvents({
handlers: {
onHeartbeat: function (msg, e) { if (console)
console.log("onHeartbeat", msg, e); },
onMessage: function (msg, e) { // fired after every message
console.log(msg);
}
},
receivers: {
//... Register any receivers
}
});
它会产生错误。如果我添加所有处理程序,它们会产生更多相同的错误。
jquery 2.1.1
Uncaught TypeError: fn.cal is not a function
at EventSource.onMessage (ss-utils.js:566)
jquery 3.1.x
未捕获的TypeError:无法分配给只读属性'target' 对象'#' 在Function.r.extend.r.fn.extend(jquery.min.js:2) 在EventSource.onMessage(ss-utils.js:511)
答案 0 :(得分:1)
第566行的/js/ss-utils.js包含脚本中有一个错误。它应该是fn.call而不是fn.cal。我将留下这个答案,以防其他人遇到服务堆栈(核心)附带的js SSE库的问题。