服务器端事件获取错误
问题描述:
所以我在页面的JavaScript中有以下代码。服务器端事件获取错误
<script>
if (!!window.EventSource)
{
var source = new EventSource('Stream.cfm');
source.onmessage = function(event)
{
document.getElementById("result").innerHTML += event.data + "<br>";
};
}
else
{
// Result to xhr polling :(
}
source.addEventListener('message', function(e) {
console.log(e.data);
}, false);
source.addEventListener('open', function(e) {
// Connection was opened.
console.log('Open');
}, false);
source.addEventListener('error', function(e) {
console.log('Error');
console.log(e);
source.close();
if (e.readyState == EventSource.CLOSED) {
// Connection was closed.
console.log('Closed');
}
}, false);
</script>
<div id="result"></div>
,并在服务器端,我有这个..
<cfcontent type="text/event-stream">
data: Hello World!\n\n
我复制了这个网址周围的几个网站,我可以看到它,从逻辑上讲,这应该工作。但是,当我运行它时,出现错误。它打开正确,但我得到一个错误,并关闭。
如果有人可以请指我到哪里我错了,这将非常感激。它加载好,它保持清爽...只是我得到的错误,它停在那里。如果我取消关闭,它会继续并保持错误。
如果它有帮助,这是在Lucee服务器上运行。
答
这里是我已经铺设的一些代码。不记得我得到灵感的地方。 websocket.org也许?
function log(x) {
\t console.log(x)
}
;(function() {
\t myWebSocket = new WebSocket('ws://echo.websocket.org');
\t myWebSocket.onopen = function(myEvent) {
\t \t $('body').append('onOpen called<br>');
\t \t log(myEvent);
\t \t myWebSocket.send('WebSocket rocks');
\t };
\t myWebSocket.onclose = function(myEvent) {
\t \t log(myEvent);
\t \t $('body').append('Disconnected<br>');
\t };
\t myWebSocket.onmessage = function(myEvent) {
\t \t log(myEvent);
\t \t $('body').append('Response: ' + myEvent.data + '<br>');
\t \t myWebSocket.close();
\t };
\t myWebSocket.onerror = function(myEvent) {
\t \t log(myEvent);
\t \t $('body').append('Error: ' + myEvent.data + '<br>');
\t };
})()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>