Note
Go to the end to download the full example code.
Callbacks#
Showcases the different callbacks that clients support.
Networks connection and disconnection#
Callbacks for when new networks are connected and/or disconnected.
def connection_callback(connection: int, target: str) -> None:
print(f"Connected network #{connection} at {target}")
client.add_connection_callback(connection_callback)
client.connect("tcp", port=33333)
Connected network #1 at tcp:host=0.0.0.0;port=33333;sock=-1
1
Nodes#
Callbacks for when new nodes are discovered and/or disconnected.
def node_callback(node_id: int, connection: int) -> None:
print(f"Discovered node #{node_id} on network #{connection}")
client.add_node_callback(node_callback)
node_id, _ = client.wait_node()
Discovered node #0 on network #1
Messages#
Callbacks for when messages are received.
def message_callback(message: Message, connection: int) -> None:
print(f"Received {message} on network #{connection}")
client.add_message_callback(message_callback)
time.sleep(1)
client.clear_message_callbacks()
Received NodePresent(source=0, version=9) on network #1
Events#
Callbacks for when events are received.
script = """
onevent event
emit count counter
"""
client.load_script(node_id=node_id,
script=script,
events={"count": 1})
client.cmd_run(node_id)
def event_callback(event: Event) -> None:
print(f"Received {event}")
client.add_event_callback(event_callback)
time.sleep(1)
client.clear_message_callbacks()
Received Event(source=0, name='count', data=[226])
Received Event(source=0, name='count', data=[227])
Received Event(source=0, name='count', data=[228])
Received Event(source=0, name='count', data=[229])
Received Event(source=0, name='count', data=[230])
Received Event(source=0, name='count', data=[231])
Received Event(source=0, name='count', data=[232])
Received Event(source=0, name='count', data=[233])
Received Event(source=0, name='count', data=[234])
Received Event(source=0, name='count', data=[235])
Total running time of the script: (0 minutes 3.021 seconds)