socket.io處理同一個事件的并發(fā),是排隊處理的嗎?
我目前的驗證結(jié)果是排隊處理的。是否可以做到并發(fā)處理
業(yè)務(wù)邏輯是這樣的
類似答題,將答題的內(nèi)容發(fā)送到同一個事件。到了一定時間以后,像所有人廣播同一份答案。
在壓測的時候,發(fā)現(xiàn)時間到了,但是答題事件還是不斷的處理中,廣播的事件也沒有發(fā)送,等答題事件處理完以后,廣播的事件才發(fā)送。。所以目前看是排隊處理的。
所以不知道,一個服務(wù),是否可以并發(fā)處理同一個個事件。
socket.io 整個服務(wù)就只有一個單進程單線程,所以得省著點用,只用于處理通信過程,其它業(yè)務(wù)邏輯處理要設(shè)法分出去。
比如你的“答題”處理,可以像 walkor 說的那樣走另外的 HTTP 服務(wù),如果要通過 socket.io 來提交也可以,但不能在 socket.io 的 Worker 中直接處理,而要通過內(nèi)部通信協(xié)議轉(zhuǎn)發(fā)給其它的 Worker 去處理,那樣就可以達到你說的“并發(fā)處理”的效果了。