为什么需要websocket sendMessage



这是摘自《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

有人能帮我理解一下吗。

在上面的代码中,ws.onopen, ws.onclose, ws.onmessage都是与WebSocket对象关联的事件

ws.send()是与WebSocket对象相关联的方法。他们之间有很大的区别。

以下事件确保Web套接字连接到服务器,即您已打开连接

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()即可完成[在您的情况下为ws.send(msg)]。

而且,只有在通过定义onopen事件处理程序与服务器建立连接后,才会发送数据。

相关内容

  • 没有找到相关文章

最新更新