44 lines
1.2 KiB
GLSL
Executable File
44 lines
1.2 KiB
GLSL
Executable File
#!/usr/bin/env -S v -n -w -gc none -cc tcc -d use_openssl -enable-globals run
|
|
|
|
import freeflowuniverse.herolib.installers.net.mycelium as mycelium_installer
|
|
import freeflowuniverse.herolib.clients.mycelium
|
|
|
|
mut installer:=mycelium_installer.get()!
|
|
installer.start()!
|
|
|
|
mut r:=mycelium.inspect()!
|
|
println(r)
|
|
|
|
|
|
|
|
mut client := mycelium.get()!
|
|
|
|
// Send a message to a node by public key
|
|
// Parameters: public_key, payload, topic, wait_for_reply
|
|
msg := client.send_msg(
|
|
'abc123...', // destination public key
|
|
'Hello World', // message payload
|
|
'greetings', // optional topic
|
|
true // wait for reply
|
|
)!
|
|
println('Sent message ID: ${msg.id}')
|
|
|
|
// Receive messages
|
|
// Parameters: wait_for_message, peek_only, topic_filter
|
|
received := client.receive_msg(true, false, 'greetings')!
|
|
println('Received message from: ${received.src_pk}')
|
|
println('Message payload: ${received.payload}')
|
|
|
|
// Reply to a message
|
|
client.reply_msg(
|
|
received.id, // original message ID
|
|
received.src_pk, // sender's public key
|
|
'Got your message!', // reply payload
|
|
'greetings' // topic
|
|
)!
|
|
|
|
// Check message status
|
|
status := client.get_msg_status(msg.id)!
|
|
println('Message status: ${status.state}')
|
|
println('Created at: ${status.created}')
|
|
println('Expires at: ${status.deadline}') |