Imported Upstream version 1.34.0
[platform/upstream/grpc.git] / examples / node / dynamic_codegen / greeter_server.js
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18
19 var PROTO_PATH = __dirname + '/../../protos/helloworld.proto';
20
21 var grpc = require('@grpc/grpc-js');
22 var protoLoader = require('@grpc/proto-loader');
23 var packageDefinition = protoLoader.loadSync(
24     PROTO_PATH,
25     {keepCase: true,
26      longs: String,
27      enums: String,
28      defaults: true,
29      oneofs: true
30     });
31 var hello_proto = grpc.loadPackageDefinition(packageDefinition).helloworld;
32
33 /**
34  * Implements the SayHello RPC method.
35  */
36 function sayHello(call, callback) {
37   callback(null, {message: 'Hello ' + call.request.name});
38 }
39
40 /**
41  * Starts an RPC server that receives requests for the Greeter service at the
42  * sample server port
43  */
44 function main() {
45   var server = new grpc.Server();
46   server.addService(hello_proto.Greeter.service, {sayHello: sayHello});
47   server.bindAsync('0.0.0.0:50051', grpc.ServerCredentials.createInsecure(), () => {
48     server.start();
49   });
50 }
51
52 main();