如果我们通过相同的html5 websocket发送两条消息,彼此分开毫秒,
从理论上讲,消息的到达顺序是否与发送的顺序不同?
我的应用程序的客户端部分需要严格按顺序处理WebSocket消息.不幸的是,每条消息的处理时间很长(大约3秒),因此在第一条消息结束之前会出现另一条消息.在几条消息之后,订单完全不同.如何在JavaScript中解决这个问题.
我想到了一个任务队列,但我不知道如何实现它以阻止我的Web应用程序的GUI.
我正在尝试从数组中获取值并按以下代码写入文本文件。
while(filedataarr.length>0) {
firstelement = filedataarr.shift();
//console.log(firstelement);
fs.appendFile("D:\\Temp\\testclient.txt", firstelement+"\n", function(err) { if (err) throw err; });
}
Run Code Online (Sandbox Code Playgroud)
它实际上正在工作,我可以在文本文件中看到数据。但问题是,行的顺序是不同的。当我取消注释 console.log 时,它可以工作。我认为这是由于异步调用而发生的。我不知道如何处理这个问题。
Data Comparison
Array Data File Data
11:41:24:562,9057 11:41:24:562,9057
11:41:24:567,1025 11:41:24:569,8872
11:41:24:569,8872 11:41:24:567,1025
11:41:24:571,1572 11:41:24:571,1572
11:41:24:573,429 11:41:24:573,429
11:41:24:574,61 11:41:24:577,3683
11:41:24:576,4863 11:41:24:574,61
11:41:24:577,3683 11:41:24:576,4863
11:41:24:578,8483 11:41:24:578,8483
17:11:53:826,1757 17:11:53:826,1757
Run Code Online (Sandbox Code Playgroud)
请帮忙。