Если вы можете получить доступ к глобальным переменным без ключевого слова global
, если вы хотите их изменить, вы должны использовать ключевое слово global
. Например:
foo = 1
def test():
foo = 2 # new local foo
def blub():
global foo
foo = 3 # changes the value of the global foo
В вашем случае вы просто получаете доступ к списку sub
.
Вам необходимо использовать брокер MQTT, который поддерживает общие подписки 1 sup>
Эта функция позволяет вам иметь несколько клиентов, подписанных на одну и ту же тему, и брокер будет доставлять их в один прием. -процедура для всех клиентов (например, первое сообщение клиенту 1, второе клиенту 2, третье клиенту 1, четвертое клиенту 2 ...)
1 sup> Общие подписки были Эта функция была реализована несколькими брокерами в v3, но с разными механизмами, поэтому они не всегда были совместимы, так как в v5 спецификации MQTT Shared Subscription является необязательным компонентом, который может поддерживать брокер, и все брокеры, реализующие эту функцию, должны вести себя одинаково. [ 112]