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