服务器端事件获取错误

时间:2017-02-10 06:23:01

标签: javascript events cfml lucee eventsource

所以我在页面的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服务器上运行。

1 个答案:

答案 0 :(得分:0)

这里有我编写的一些代码。不记得我从哪里获得了灵感。 websocket.org可能吗?

&#13;
&#13;
function log(x) {
	console.log(x)
}
;(function() {
	myWebSocket = new WebSocket('ws://echo.websocket.org');
	myWebSocket.onopen = function(myEvent) { 
		$('body').append('onOpen called<br>');
		log(myEvent);
		myWebSocket.send('WebSocket rocks');
	};
	myWebSocket.onclose = function(myEvent) { 
		log(myEvent);
		$('body').append('Disconnected<br>');
	};
	myWebSocket.onmessage = function(myEvent) { 
		log(myEvent);
		$('body').append('Response: ' + myEvent.data + '<br>');
		myWebSocket.close();
	};
	myWebSocket.onerror = function(myEvent) { 
		log(myEvent);
		$('body').append('Error: ' + myEvent.data + '<br>');
	};
})()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;