gatewayworker如何群发指令到部分设备端

dou号

问题需求:群发指令到部分设备端
解决思路:将该部分设备分组,然后利用sendtogroup群发指令
疑问1:对设备进行按需分组,请问是需要通过客户端发送含有标志性字符的指令,比如“group:team”,然后gatewayworker通过该标志性字符来将其对应的clientid加入team组中吗?如果客户端发送的指令没有标识符,在服务端的gatewayworker是不是就无法按需分组了?
疑问2:我的所有指令都含有设备id,如果客户端发送的指令中没有标识符,服务端要实现分组,是不是需要通过自己来筛选指定id加入分组?
疑问3:在客户端通过将指定设备放入数组,然后用for等循环语句遍历数组,并向对应设备逐一发送指令,这样会对系统造成影响吗?

2966 2 0
2个回答

phpcreeper

1、疑问1和疑问2我认为是一个问题,对于分组接口要的第一关键参数就是分组标识,所以只要能有效提供分组标识就可以了,客户端可以附带组标识过去,也可能是在后端已经预先确定好了设备和组的关系,这时候后端直接map出来组就可以呢。
2、sendToGroup()按组群发和for一个一个的遍历发送,性能几乎相当。

  • 暂无评论
dou号

谢谢解答,请问如果量大起来,比如成百上千条数据,sendtogroup()和for遍历发送性能还是一样吗?

  • phpcreeper 2018-12-17

    性能是几乎相当的,因为 sendtogroup() 内部最终执行的也是for逻辑, 即遍历群组内的一个个的连接对象来发送。

  • dou号 2018-12-17

    @614:好的,多谢

  • phpcreeper 2018-12-17

    @4294: 不客气

年代过于久远,无法发表回答
×
🔝