parent
d899173763
commit
bf674eb61c
@ -0,0 +1,12 @@
|
|||||||
|
import asyncio
|
||||||
|
from .producer_client import ProducerClient
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
client = ProducerClient('127.0.0.1', 5554)
|
||||||
|
asyncio.run(client.notify_interactive())
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
@ -0,0 +1,45 @@
|
|||||||
|
import asyncio
|
||||||
|
import struct
|
||||||
|
import sys
|
||||||
|
|
||||||
|
|
||||||
|
class ProducerClient:
|
||||||
|
BUFFER_SIZE = 1024
|
||||||
|
|
||||||
|
def __init__(self, ip: str, port: int):
|
||||||
|
self.__ip = ip
|
||||||
|
self.__port = port
|
||||||
|
self.reader = None
|
||||||
|
self.writer = None
|
||||||
|
|
||||||
|
async def connect(self):
|
||||||
|
self.reader, self.writer = await asyncio.open_connection(self.__ip, self.__port)
|
||||||
|
|
||||||
|
async def send(self, message: str):
|
||||||
|
self.writer.write(struct.pack('<L', len(message)))
|
||||||
|
self.writer.write(message.encode('utf-8'))
|
||||||
|
|
||||||
|
async def send_notification(self, title: str, message: str):
|
||||||
|
await self.send(title)
|
||||||
|
|
||||||
|
await self.send(f'# {title}\n{message}')
|
||||||
|
|
||||||
|
async def notify_interactive(self):
|
||||||
|
await self.connect()
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
print('Your notification: ')
|
||||||
|
title = input('title: ')
|
||||||
|
message = input('message: ')
|
||||||
|
await self.send_notification(title, message)
|
||||||
|
|
||||||
|
except asyncio.CancelledError:
|
||||||
|
pass
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("\nbye")
|
||||||
|
sys.exit(0)
|
||||||
|
finally:
|
||||||
|
self.writer.close()
|
||||||
|
await self.writer.wait_closed()
|
||||||
|
|
Loading…
Reference in new issue