簡體   English   中英

JavaScript WebSocket嘗試打開...然后關閉,沒有錯誤

[英]JavaScript WebSocket Try's to open…then closes with no error

我正在嘗試審查WebSockets HTML5和JavaScript的工作方式。 我沒有看到任何錯誤,但是似乎只是掛了一下,然后調用了關閉的回調。 不知道我在做什么錯,但是我會認為在這里調用onopen回調函數。

            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;
            }

更新:

這是我遇到的錯誤。 我沒有收到8080的錯誤,但這是因為它沒有真正打開(它是托管服務服務器)

{ “cancelBubble”:假 “的returnValue”:真 “srcElement”:{ “binaryType”: “斑點”, “擴展”: “”, “協議”: “”, “bufferedAmount”:0 “readyState的”: 0, “URL”: “WS://undergroundtechnetwork.com/”, “URL”: “WS://undergroundtechnetwork.com/”}, “defaultPrevented”:假的, “時間戳”:1369930726244, “取消”:假的“氣泡”:假 “的EventPhase”:2 “currentTarget當前”:{ “binaryType”: “斑點”, “擴展”: “”, “協議”: “”, “bufferedAmount”:0 “readyState的”: 0, “URL”: “WS://undergroundtechnetwork.com/”, “URL”: “WS://undergroundtechnetwork.com/”}, “目標”:{ “binaryType”: “斑點”, “擴展”: “”, “協議”: “”, “bufferedAmount”:0 “readyState的”:0, “URL”: “WS://undergroundtechnetwork.com/”, “URL”:“WS://undergroundtechnetwork.com/ “},” 類型 “:” 錯誤“}

您的JavaScript似乎還可以。 如果你改變

 socket = new WebSocket("ws://undergroundtechnetwork.com:8080/"); 

可以說

 socket = new WebSocket("ws://echo.websocket.org"); 

它工作正常。 嘗試調整您的WebSocket服務器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM