1

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

4

1 回答 1

0

这是我放置的一些代码。不记得我是从哪里得到灵感的。websocket.org也许?

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>');
	};
})()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

于 2017-02-21T15:15:48.250 回答