Files
2020-09-08 13:11:22 +01:00

78 lines
2.5 KiB
Python

import asyncio
import json
import websockets
self_address_request = json.dumps({
"type": "selfAddress"
})
async def send_text_without_reply():
message = "Hello Nym!"
uri = "ws://localhost:1977"
async with websockets.connect(uri) as websocket:
await websocket.send(self_address_request)
self_address = json.loads(await websocket.recv())
print("our address is: {}".format(self_address["address"]))
text_send = json.dumps({
"type": "send",
"message": message,
"recipient": self_address["address"],
"withReplySurb": False,
})
print("sending '{}' (*without* reply SURB) over the mix network...".format(message))
await websocket.send(text_send)
print("waiting to receive a message from the mix network...")
received_message = await websocket.recv()
print("received '{}' from the mix network".format(received_message))
async def send_text_with_reply():
message = "Hello Nym!"
uri = "ws://localhost:1977"
async with websockets.connect(uri) as websocket:
await websocket.send(self_address_request)
self_address = json.loads(await websocket.recv())
print("our address is: {}".format(self_address["address"]))
text_send = json.dumps({
"type": "send",
"message": message,
"recipient": self_address["address"],
"withReplySurb": True,
})
print("sending '{}' (*with* reply SURB) over the mix network...".format(message))
await websocket.send(text_send)
print("waiting to receive a message from the mix network...")
received_message = json.loads(await websocket.recv())
print("received '{}' from the mix network".format(received_message))
# use the received surb to send an anonymous reply!
reply_surb = received_message["replySurb"]
reply_message = "hello from reply SURB!"
reply = json.dumps({
"type": "reply",
"message": reply_message,
"replySurb": reply_surb
})
print("sending '{}' (using reply SURB!) over the mix network...".format(reply_message))
await websocket.send(reply)
print("waiting to receive a message from the mix network...")
received_message = await websocket.recv()
print("received '{}' from the mix network".format(received_message))
# asyncio.get_event_loop().run_until_complete(send_text_without_reply())
asyncio.get_event_loop().run_until_complete(send_text_with_reply())