Callbacks#

Showcases the different callbacks that clients support.

from pyaseba.client import Message, Event, Client
import time

client = Client()

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)

Gallery generated by Sphinx-Gallery