Fixes grammer (#6477)
[platform/upstream/flatbuffers.git] / grpc / flatbuffers-js-grpc / src / server.ts
1 import grpc from 'grpc';
2 import { HelloReply } from './models/hello-reply';
3 import { HelloRequest } from './models/hello-request';
4 import { IGreeterServer, GreeterService } from './greeter_grpc';
5 import { flatbuffers } from 'flatbuffers';
6
7 class GreeterServer implements IGreeterServer {
8
9     SayHello(call: grpc.ServerUnaryCall<HelloRequest>, callback: grpc.sendUnaryData<HelloReply>): void {
10         console.log(`SayHello ${call.request.name()}`);
11         const builder = new flatbuffers.Builder();
12         const offset = builder.createString(`welcome ${call.request.name()}`);
13         const root = HelloReply.createHelloReply(builder, offset);
14         builder.finish(root);
15         callback(null, HelloReply.getRootAsHelloReply(new flatbuffers.ByteBuffer(builder.asUint8Array())));
16     }
17
18     async SayManyHellos(call: grpc.ServerWritableStream<HelloRequest>): Promise<void> {
19         const name = call.request.name();
20         console.log(`${call.request.name()} saying hi in different langagues`);
21         ['Hi', 'Hallo', 'Ciao'].forEach(element => {
22             const builder = new flatbuffers.Builder();
23             const offset = builder.createString(`${element} ${name}`);
24             const root = HelloReply.createHelloReply(builder, offset);
25             builder.finish(root);
26             call.write(HelloReply.getRootAsHelloReply(new flatbuffers.ByteBuffer(builder.asUint8Array())))
27         });
28         call.end();
29     }
30 }
31
32 function serve(): void {
33     const PORT = 3000;
34     const server = new grpc.Server();
35     server.addService<IGreeterServer>(GreeterService, new GreeterServer());
36     console.log(`Listening on ${PORT}`);
37     server.bind(`localhost:${PORT}`, grpc.ServerCredentials.createInsecure());
38     server.start();
39 }
40
41 serve();