这是从" HTML5 websocket的权威指南"
一书中获取的代码div id="output"></div>
<script>
function setup() {
output = document.getElementById("output");
ws = new WebSocket("ws://localhost:7777");
ws.onopen = function(e) {
log("Connected");
sendMessage("Hello Websocket!");
}
ws.onclose = function(e){
log("Disconnected: " + e.reason);
}
ws.onerror = function(e){
log("Error ");
}
ws.onmessage = function(e) {
log("Message received: " + e.data);
ws.close();
}
}
function sendMessage(msg){
ws.send(msg);
log("Message Sent");
}
function log(s){
var p = document.createElement("p");
p.style.wordWrap = "break-word";
有人可以告诉我这个下面的事件是什么原因吗?
ws.send(msg);
我了解下面将在服务器端调用 onMessage 方法,如下所示
public void onMessage(String data) {
}
但是服务器端 onMessage 的实际目的是将数据从后端发送到javascript,这将调用客户端javascript的调用onmessage
。
任何人都可以帮我理解这一点。
答案 0 :(得分:1)
在上面的代码中,ws.onopen, ws.onclose, ws.onmessage
都是与WebSocket对象关联的事件。
ws.send()
是与WebSocket对象关联的方法。它们之间存在巨大差异。
以下事件可确保Web Socket连接到服务器,即您已打开连接
ws.onopen = function(e) {
//Once you've opened your connection
//you can begin transmitting data to the server
//using the following method
ws.send("You\'re message");
}
因此ws.send()
方法的主要目的是将数据从客户端传输到服务器,这是通过简单地调用WebSocket对象的send()来实现的。情况1}}]。
只有在与服务器建立连接 后才会发送数据,方法是定义ws.send(msg)
事件处理程序。