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