Reputation: 1644
I'm trying to vet out how WebSockets HTML5 and JavaScript work. I'm seeing no errors, but instead appears to just hang for a bit, and then call the closed callback. Not sure what I'm doing wrong, but I would think the onopen callback function to get called here.
var socket;
window.onload = function(argument) {
try
{
document.getElementById("console").innerHTML = "Opening WebSocket...";
socket = new WebSocket("ws://undergroundtechnetwork.com:8080/");
socket.onopen = function(){
document.getElementById("console").innerHTML += "<br />WebSocket opened.";
}
socket.onmessage = function(message){
document.getElementById("console").innerHTML += "<br />WebSocket recieved a message: " + message;
}
socket.onclose = function(){
document.getElementById("console").innerHTML += "<br />WebSocket status: " + GetSocketStateName(socket.readyState);
}
socket.onerror = function(e){
document.getElementById("console").innerHTML += "<br />WebSocket error message:<br />" + JSON.stringify(e);
}
}catch(e){
document.getElementById("console").innerHTML += "<br />Exception: " + e;
}
}
function GetSocketStateName(state){
var strSocketState;
if(socket.readyState == 0){
strSocketState = "Connecting";
}else if(socket.readyState == 1){
strSocketState = "Open";
}else if(socket.readyState == 2){
strSocketState = "Closing";
}else if(socket.readyState == 3){
strSocketState = "Closed";
}
return strSocketState;
}
Update:
This is the error I'm getting in the on error. I don't get an error for 8080, but that's because it's not actual open ( its a hosting service server )
{"cancelBubble":false,"returnValue":true,"srcElement":{"binaryType":"blob","extensions":"","protocol":"","bufferedAmount":0,"readyState":0,"url":"ws://undergroundtechnetwork.com/","URL":"ws://undergroundtechnetwork.com/"},"defaultPrevented":false,"timeStamp":1369930726244,"cancelable":false,"bubbles":false,"eventPhase":2,"currentTarget":{"binaryType":"blob","extensions":"","protocol":"","bufferedAmount":0,"readyState":0,"url":"ws://undergroundtechnetwork.com/","URL":"ws://undergroundtechnetwork.com/"},"target":{"binaryType":"blob","extensions":"","protocol":"","bufferedAmount":0,"readyState":0,"url":"ws://undergroundtechnetwork.com/","URL":"ws://undergroundtechnetwork.com/"},"type":"error"}
Upvotes: 1
Views: 3461
Reputation: 698
Your JavaScript seems to be OK. If you change
socket = new WebSocket("ws://undergroundtechnetwork.com:8080/");
to let's say
socket = new WebSocket("ws://echo.websocket.org");
it works fine. Try tweaking your WebSocket server instead.
Upvotes: 1