52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
import asyncio
|
|
import os
|
|
|
|
from faststream.nats import NatsBroker
|
|
from faststream.nats.message import NatsMessage
|
|
|
|
from broadcast.models import ProbeRegister, ProbeHeartBeat, ProbeUnregister
|
|
|
|
NATS_SERVERS = os.getenv('NATS_URL', 'nats://localhost:4222').split(',')
|
|
NATS_TOKEN = os.getenv('NATS_TOKEN', '')
|
|
|
|
broker = NatsBroker(servers=NATS_SERVERS, token=NATS_TOKEN)
|
|
|
|
async def main():
|
|
msg_register = ProbeRegister(
|
|
command="register",
|
|
probe_id="prvni",
|
|
capabilities="capabilities",
|
|
probe_type="mtr"
|
|
)
|
|
|
|
msg_heart_beat = ProbeHeartBeat(
|
|
command="hartbeat",
|
|
probe_id="prvni",
|
|
status="OK"
|
|
)
|
|
|
|
msg_unregister = ProbeUnregister(
|
|
command="unregister",
|
|
probe_id="prvni",
|
|
)
|
|
|
|
await broker.connect()
|
|
#response = await broker.publish(msg.model_dump(), subject=f"discovery.probe")
|
|
|
|
response: NatsMessage = await broker.request(
|
|
msg_register.model_dump(),
|
|
subject="discovery.probe",
|
|
timeout=3,
|
|
)
|
|
print(f"{await response.decode()=}")
|
|
|
|
await asyncio.sleep(5)
|
|
await broker.publish(msg_heart_beat.model_dump(), subject=f"discovery.probe")
|
|
|
|
await asyncio.sleep(5)
|
|
await broker.publish(msg_unregister.model_dump(), subject=f"discovery.probe")
|
|
|
|
await broker.stop()
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main()) |