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