Могу ли я иметь несколько PUB
серверов, вещающих?
Да, вы можете
Легко.
Я не получаю ничего на другом конце ... Что я делаю не так?
Не подписывайтесь на "1"
в случаях,когда он никогда не наступит
Эта единственная причина стоит за "не получением чего-либо" (если только оно не началось с "1"
, чего, очевидно, никогда не было, поскольку полезная нагрузка была собрана прямо socket.send_object( ... )
и никогда не было "1"
для сопоставления с позицией байта, похожего на строку [0].
- ... как установить тему для
send_pyobj()
?
Ну, вы никогда не знаете,
Это должно быть установлено с помощью другихозначает, чем угадывать несколько байтов, «сопоставляя» начальную секцию представления объекта-байта-строки.
Самое простое - «предварительно» добавить контролируемое значение на стороне отправителя следующим образом:
import dill as pickle
aConstantNbytesPUB_TOPIC_FILTER_PREFIX = "{UUID:0000-0000-0000-1111-2222}"
socket.send( aConstantNbytesPUB_TOPIC_FILTER_PREFIX
+ pickle.dumps( anObjectToSEND )
)
...
aMSG = socket.recv()
print( pickle.loads( aMSG[ len( aConstantNbytesPUB_TOPIC_FILTER_PREFIX ):]
)
)
Использование композиции из нескольких частей также возможно, но немного дольше, чтобы продемонстрировать концепцию здесь.
Оба pickle
и dill
ограничены в своих стратегиях SER / DES для возможностей декомпозиции / обхода / восстановления объектов, а предупреждения о безопасности, как известно, принимаются во внимание.