1

I am experimeting with web sockets.

I look at http://www.websocket.org/echo.html site... They have simple echo demo for client [ under Creating your own test ] I copy that code...

<!DOCTYPE html>  
<meta charset="utf-8" /> 
<title>WebSocket Test</title>  
<script language="javascript" type="text/javascript">  

 var wsUri = "ws://echo.websocket.org/";
 var output;

 function init() 
 { 
  output = document.getElementById("output"); 
  testWebSocket(); 
 }

 function testWebSocket() 
 { 
  websocket = new WebSocket(wsUri); 
  websocket.onopen = function(evt) { onOpen(evt) }; 
  websocket.onclose = function(evt) { onClose(evt) }; 
  websocket.onmessage = function(evt) { onMessage(evt) }; 
  websocket.onerror = function(evt) { onError(evt) }; 
 }

 function onOpen(evt) 
 { 
     writeToScreen("CONNECTED"); 
     doSend("WebSocket rocks"); 
}

function onClose(evt) 
{ 
   writeToScreen("DISCONNECTED"); 
}
function onError(evt) 
{ 
    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data); 
 }

 function doSend(message) 
 { 
      writeToScreen("SENT: " + message); 
      websocket.send(message); 
}

function writeToScreen(message) 
{ 
    var pre = document.createElement("p"); 
    pre.style.wordWrap = "break-word"; 
    pre.innerHTML = message; 
    output.appendChild(pre); 
}

window.addEventListener("load", init, false);

</script>  <h2>WebSocket Test</h2>  
<div id="output"></div> 

 </html>

It connects but can not able take response...

Should a client for websocket run under a websocket supported Server?

4

2 回答 2

1

I had a similar problem even with the OnMessage() included. I got CONNECTED, SENT, DISCONNECTED but no RESPONSE. The same happened using the jsfiddle.net example in the other Answer.

Changing the wsUri to use TLS ie: "wss://echo.websocket.org/" instead of "ws://echo.websocket.org/" fixed the problem. (Maybe it's due to some security setting in the browser.)

于 2017-06-30T02:18:19.893 回答
-1

you are missing a onMessage(evt) handler.

function onMessage(message){
   writeToScreen("GOT MESSAGE: " + message.data); 
}

here is a working example.

If you click the button it will open up a connection send a message and receives it back.

Note that only your browser needs support!

If you want to implement your own web-socket based service on a backend. You need a webserver that supports of cource..

于 2012-09-12T08:55:12.567 回答