問題需求:群發(fā)指令到部分設(shè)備端
解決思路:將該部分設(shè)備分組,然后利用sendtogroup群發(fā)指令
疑問1:對(duì)設(shè)備進(jìn)行按需分組,請(qǐng)問是需要通過客戶端發(fā)送含有標(biāo)志性字符的指令,比如“group:team”,然后gatewayworker通過該標(biāo)志性字符來將其對(duì)應(yīng)的clientid加入team組中嗎?如果客戶端發(fā)送的指令沒有標(biāo)識(shí)符,在服務(wù)端的gatewayworker是不是就無法按需分組了?
疑問2:我的所有指令都含有設(shè)備id,如果客戶端發(fā)送的指令中沒有標(biāo)識(shí)符,服務(wù)端要實(shí)現(xiàn)分組,是不是需要通過自己來篩選指定id加入分組?
疑問3:在客戶端通過將指定設(shè)備放入數(shù)組,然后用for等循環(huán)語(yǔ)句遍歷數(shù)組,并向?qū)?yīng)設(shè)備逐一發(fā)送指令,這樣會(huì)對(duì)系統(tǒng)造成影響嗎?
1、疑問1和疑問2我認(rèn)為是一個(gè)問題,對(duì)于分組接口要的第一關(guān)鍵參數(shù)就是分組標(biāo)識(shí),所以只要能有效提供分組標(biāo)識(shí)就可以了,客戶端可以附帶組標(biāo)識(shí)過去,也可能是在后端已經(jīng)預(yù)先確定好了設(shè)備和組的關(guān)系,這時(shí)候后端直接map出來組就可以呢。
2、sendToGroup()按組群發(fā)和for一個(gè)一個(gè)的遍歷發(fā)送,性能幾乎相當(dāng)。
謝謝解答,請(qǐng)問如果量大起來,比如成百上千條數(shù)據(jù),sendtogroup()和for遍歷發(fā)送性能還是一樣嗎?
性能是幾乎相當(dāng)?shù)?,因?yàn)?sendtogroup() 內(nèi)部最終執(zhí)行的也是for邏輯, 即遍歷群組內(nèi)的一個(gè)個(gè)的連接對(duì)象來發(fā)送。