2017-02-10 146 views
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服務器上運行。

回答

0

這裏是我已經鋪設的一些代碼。不記得我得到靈感的地方。 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>