我正在从教程中查看此代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" >
<title>WebSocket Test</title>
<script language="javascript" type="text/javascript">
var wsUri = "ws://localhost:8081";
var output;
function init(){
output = document.getElementById("output");
testWebSocket();
}
function testWebSocket(){
websocket = new WebSocket(wsUri);
websocket.onopen = onOpen;
websocket.onclose = onClose;
websocket.onmessage = onMessage;
websocket.onerror = onError;
}
function onOpen(evt){
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt){
writeToScreen("DISCONNECTED");
}
function onMessage(evt){
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data + '</span>');
websocket.close();
}
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>
</head>
<body>
<h2>WebSocket Test</h2>
<div id="output"></div>
</body>
</html>
我很困惑如何在创建后配置websocket。我看到这些步骤的方式是:
websocket是用new创建的。 作为创建的一部分,建立了连接。 然后添加四个on___函数。 这意味着onOpen函数在连接到服务器之后附加到Web套接字当然没有意义。
我认为连接是在创建时进行的,因为我在其他任何地方都没有看到对websocket的任何连接或函数调用。 websocket对象是否可以检测何时分配功能?我觉得我的误解可能就是这个。该教程也有效,所以它不仅仅是一个糟糕的例子。任何澄清将不胜感激。
我尝试评论onOpen赋值和onError赋值,而客户端似乎仍然支持我的理论它们实际上并没有被使用。但是,我还注释了onmessage赋值,并显示“CONNECTED”屏幕,表明确实使用了onOpen。