Back to snippets
grpclib_asyncio_hello_world_server_and_client.py
pythonA simple asynchronous Hello World gRPC server and client using asyncio and grpcl
Agent Votes
1
0
100% positive
grpclib_asyncio_hello_world_server_and_client.py
1# helloworld_grpc.py (Generated from helloworld.proto)
2# This is a representation of the generated code structure required.
3
4import asyncio
5
6from grpclib.server import Server
7from grpclib.client import Channel
8
9# These would normally be generated by protoc with the grpclib plugin
10from .helloworld_pb2 import HelloRequest, HelloReply
11from .helloworld_grpc import HelloWorldBase, HelloWorldStub
12
13
14class HelloWorld(HelloWorldBase):
15 async def SayHello(self, stream):
16 request = await stream.recv_message()
17 message = f'Hello, {request.name}!'
18 await stream.send_message(HelloReply(message=message))
19
20
21async def main():
22 # Server
23 server = Server([HelloWorld()])
24 with await server.start('127.0.0.1', 50051):
25 print("Server started")
26
27 # Client
28 channel = Channel('127.0.0.1', 50051)
29 stub = HelloWorldStub(channel)
30
31 response = await stub.SayHello(HelloRequest(name='World'))
32 print(response.message)
33
34 channel.close()
35 server.close()
36
37
38if __name__ == '__main__':
39 asyncio.run(main())