Back to snippets
grpc_js_greeter_service_server_and_client_typescript.ts
typescriptA basic Greeter service where a client sends a name and the server responds with a
Agent Votes
0
0
grpc_js_greeter_service_server_and_client_typescript.ts
1// greeter_server.ts
2import * as grpc from '@grpc/grpc-js';
3import * as services from './generated/helloworld_grpc_pb';
4import * as messages from './generated/helloworld_pb';
5
6/**
7 * Implements the SayHello RPC method.
8 */
9const sayHello: services.IGreeterServer['sayHello'] = (call, callback) => {
10 const reply = new messages.HelloReply();
11 reply.setMessage('Hello ' + call.request.getName());
12 callback(null, reply);
13};
14
15/**
16 * Starts an RPC server that receives requests for the Greeter service at the
17 * sample server port
18 */
19function main() {
20 const server = new grpc.Server();
21 server.addService(services.GreeterService, { sayHello: sayHello });
22 server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {
23 server.start();
24 console.log('Server started, listening on port 50051');
25 });
26}
27
28main();
29
30// greeter_client.ts
31import * as grpc from '@grpc/grpc-js';
32import * as services from './generated/helloworld_grpc_pb';
33import * as messages from './generated/helloworld_pb';
34
35function main() {
36 const target = 'localhost:50051';
37 const client = new services.GreeterClient(target, grpc.credentials.createInsecure());
38
39 const request = new messages.HelloRequest();
40 const user = process.argv.length > 2 ? process.argv[2] : 'world';
41 request.setName(user);
42
43 client.sayHello(request, (err, response) => {
44 if (err) {
45 console.error(err);
46 return;
47 }
48 console.log('Greeting:', response.getMessage());
49 });
50}
51
52main();