Javascript等待Websocket“发送”命令来完成?

我使用sockjs与Websocket 一起工作。

sock.send( JSON.stringify(obj1) ); sock.send( JSON.stringify(obj2) ); sock.send( JSON.stringify(obj3) ); ... 

这是保证,“发送”命令将被评估一个接一个? (第一次结束时,第二次开始,等等)

提前致谢!

要发送的数据排队并asynchronous传输,因此可能会在第一个数据传输之前调用第二个数据。 但是,第二次调用发送的数据在第一次之前不会到达服务器。

您可以在HTML5规范中阅读关于Web套接字行为的更多信息。

如果您的发送调用在相同的Javascript执行上下文,那么他们肯定会按顺序执行。 另外,每个发送都将被onmessage处理程序作为一个整体消息接收(即不会被分割)。

相同的执行上下文

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

不同的执行上下文

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

在第二个例子中,“msg2”不保证在“msg1”之后被传送。 这很可能是因为延迟时间稍长,但不能保证。