2012-03-14 57 views

回答

2

要發送的數據排隊並異步傳輸,因此可能會在第一個數據傳輸之前調用第二個數據。但是,第二次調用發送的數據在第一次之前不會到達服務器。

您可以閱讀更多關於Web套接字行爲in the HTML5 specification

0

如果你的發送調用在同一個Javascript執行上下文中,那麼它們肯定會按順序執行。另外,每個發送將由onmessage處理程序作爲整個消息接收(即,它不會被分段)。

相同的執行上下文:

function doit() { 
    ws.send("msg1"); 
    ws.send("msg2"); 
} 

不同執行上下文:

setTimeout(function() { ws.send("msg1"); }, 100); 
setTimeout(function() { ws.send("msg2"); }, 110); 

在第二個例子中, 「MSG2」 不能保證的 「MSG1」 之後被遞送。這很可能是因爲延遲時間稍長,但不能保證。