2017-08-03 144 views

回答

1

只需将控制台日志放入该功能并关闭websocket服务器,就可以检查close。至于onError,每个浏览器都以不同的方式处理它,我认为Firefox会在断开连接时触发它。

0

演示接收错误信息

<!DOCTYPE html> 
 
<html> 
 
    <meta charset = "utf-8" /> 
 
    <title>WebSocket Test</title> 
 

 
    <script language = "javascript" type = "text/javascript"> 
 
     var wsUri = "ws://echo.websocket.org/"; 
 
     var output; 
 
\t \t 
 
     function init() { 
 
     output = document.getElementById("output"); 
 
     testWebSocket(); 
 
     } 
 
\t \t 
 
     function testWebSocket() { 
 
     websocket = new WebSocket(wsUri); 
 
\t \t \t 
 
     websocket.onopen = function(evt) { 
 
      onOpen(evt) 
 
     }; 
 
\t \t \t 
 
     websocket.onclose = function(evt) { 
 
      onClose(evt) 
 
     }; 
 
\t \t \t 
 
     websocket.onerror = function(evt) { 
 
      onError(evt) 
 
     }; 
 
     } 
 
\t \t 
 
     function onOpen(evt) { 
 
     writeToScreen("CONNECTED"); 
 
     doSend("WebSocket rocks"); 
 
     } 
 
\t \t 
 
     function onClose(evt) { 
 
     writeToScreen("DISCONNECTED"); 
 
     } 
 
\t \t 
 
     function onError(evt) { 
 
     writeToScreen('<span style = "color: red;">ERROR:</span> ' + evt.data); 
 
     } 
 
\t \t 
 
     function doSend(message) { 
 
     writeToScreen("SENT: " + message); websocket.send(message); 
 
     } 
 
\t \t 
 
     function writeToScreen(message) { 
 
     var pre = document.createElement("p"); 
 
     pre.style.wordWrap = "break-word"; 
 
     pre.innerHTML = message; output.appendChild(pre); 
 
     } 
 
\t \t 
 
     window.addEventListener("load", init, false); 
 
    </script> 
 
\t 
 
    <h2>WebSocket Test</h2> 
 
    <div id = "output"></div> 
 
\t 
 
</html>

+0

对不起,你一定误解了我的问题,想知道触发这些关闭/错误,以便确保我的处理程序将工作的最简单的方法如预期。 – sparcut