That was it. Fork!!

The process was spawned on 3/5.

Thanks!

How can two servers bind to the same ip&port ?

On Monday, March 11, 2019 at 3:47:18 PM UTC-4, Michael Lumish wrote:
>
> Can you make sure you don't have any other servers running on that same 
> machine? One possibility here is that another gRPC service without that 
> method implemented is bound to this port and either the bind call is 
> failing (the example code does not check the return value), or they are 
> both binding the port and the incoming connection is going to the wrong one.
>
> On Mon, Mar 11, 2019 at 12:01 PM Rob Cecil <[email protected] 
> <javascript:>> wrote:
>
>> https://gist.github.com/robcecil/1f030e2c8bfa45b567128e50e2156dad
>>
>> Running Node v11.10.0 on Ubuntu Comic 18.10.
>>
>>
>> On Monday, March 11, 2019 at 2:30:13 PM UTC-4, Rob Cecil wrote:
>>>
>>> I updated everything:
>>>
>>> wander@peniche:~/control-web$ npm list --depth=0 2>/dev/null
>>> [email protected] /home/wander/control-web
>>> ├── @grpc/[email protected]
>>> ├── [email protected]
>>> ├── [email protected]
>>> ├── [email protected]
>>> ├── [email protected]
>>> ├── [email protected]
>>> ├── [email protected]
>>> ├── [email protected]
>>> └── [email protected]
>>>
>>> I still see the same behavior.
>>>
>>> If I change my server.,js:
>>>
>>> function main() {
>>>     var server = new grpc.Server();
>>>     server.addService(test.Greeter.service, {
>>>         sayHello: SayHello,
>>>         sayHelp: SayHelp
>>>     });
>>>     //console.dir(util.inspect(server,  showHidden=false, depth=5, 
>>> colorize=false));
>>>     server.bind(argv.h, grpc.ServerCredentials.createInsecure());
>>>     server.start();
>>> }
>>>
>>> Restart, ... I see the same behavior.
>>>
>>>
>>> On Monday, March 11, 2019 at 12:41:14 PM UTC-4, Michael Lumish wrote:
>>>>
>>>> Can you try updating your dependencies? I just tried running the given 
>>>> code with the latest versions of grpc and @grpc/proto-loader and it 
>>>> worked. 
>>>> There was previously an issue that the library would not accept method 
>>>> names with the same casing as in the original proto file, but that was 
>>>> fixed a while ago.
>>>>
>>>> As a side note, the `keepCase` option in `proto-loader` affects message 
>>>> field names. If it is not set, the field names are transformed to camel 
>>>> case.
>>>>
>>>> On Mon, Mar 11, 2019 at 8:14 AM 'Mya Pitzeruse' via grpc.io <
>>>> [email protected]> wrote:
>>>>
>>>>> On the server side, try using lowercase names instead of title case:
>>>>>
>>>>>     server.addService(test.Greeter.service, {
>>>>>         sayHello: SayHello,
>>>>>         sayHelp: SayHelp
>>>>>     });
>>>>>
>>>>> I would assume that using "keepCase: true" meant that they would 
>>>>> require these to be the same as the proto. But here's an example where I 
>>>>> use the same loader semantic and the same casing: 
>>>>>
>>>>> https://github.com/mjpitz/des/blob/master/api/extractor.proto#L19
>>>>> https://github.com/mjpitz/des/blob/master/api/extractor.js#L8
>>>>>
>>>>> And all of my service methods are use camel case instead of the case I 
>>>>> used in the proto file:
>>>>>
>>>>> https://github.com/mjpitz/des/blob/master/src/service/unasyncify.ts#L9
>>>>>
>>>>>
>>>>> On Sat, Mar 9, 2019 at 10:08 AM Rob Cecil <[email protected]> wrote:
>>>>>
>>>>>> I'm experienced with Grpc - having built iOS/ObjC front-end and C# 
>>>>>> backend over a two year period (a Grpc project consisting of a main 
>>>>>> proto 
>>>>>> with a service that has 27 methods, and about a dozen supporting protos 
>>>>>> for 
>>>>>> message definitions).
>>>>>>
>>>>>> I am however, not super experienced with web development, so I am a 
>>>>>> little frustrated atm, trying to get simple things to work with 
>>>>>> Grpc-node.  
>>>>>> I started with something simple - the HelloWorld example and modified it 
>>>>>> from there. 
>>>>>>
>>>>>> Here is my current "test.proto":
>>>>>>
>>>>>> syntax = "proto3";
>>>>>>
>>>>>>
>>>>>> package helloworld;
>>>>>>
>>>>>>
>>>>>> service Greeter {
>>>>>>     rpc SayHello(FooBarRequest) returns (FooBarReply);
>>>>>>     rpc SayHelp(FooBarRequest) returns (FooBarReply);
>>>>>> }
>>>>>>
>>>>>>
>>>>>> message FooBarRequest {
>>>>>>     string name = 1;
>>>>>> }
>>>>>>   
>>>>>> message FooBarReply {
>>>>>>     string message = 1;
>>>>>> }
>>>>>>
>>>>>>
>>>>>> server.js:
>>>>>>
>>>>>> const _ = require('lodash');
>>>>>> const grpc = require('grpc');
>>>>>> const protoLoader = require('@grpc/proto-loader');
>>>>>>
>>>>>>
>>>>>> const argv = require("minimist")(process.argv.slice(2));
>>>>>> console.dir(argv);
>>>>>>
>>>>>>
>>>>>> if (!argv.h) {
>>>>>>     console.log("Please start server.js with -h xx.xx.xx.xx:xxxx");
>>>>>>     process.exit(1);
>>>>>> }
>>>>>> console.log(`Starting server.js on : ${argv.h}`);
>>>>>>
>>>>>>
>>>>>> const PROTOS_PATH = __dirname + '/../protos/';
>>>>>> const BESERVICE_PROTO_PATH = PROTOS_PATH + 'test.proto';
>>>>>>
>>>>>>
>>>>>> const beDefinition = protoLoader.loadSync(
>>>>>>     BESERVICE_PROTO_PATH,
>>>>>>     {keepCase: true,
>>>>>>      longs: String,
>>>>>>      enums: String,
>>>>>>      defaults: true,
>>>>>>      oneofs: true
>>>>>>     });
>>>>>>
>>>>>>
>>>>>> const test = grpc.loadPackageDefinition(beDefinition).helloworld;
>>>>>>
>>>>>>
>>>>>> function SayHello(call, callback) {
>>>>>>     callback(null, {message: 'Hello ' + call.request.name});
>>>>>> }
>>>>>>
>>>>>>
>>>>>> function SayHelp(call, callback) {
>>>>>>     callback(null, {message: 'Help! ' + call.request.name});
>>>>>> }
>>>>>>
>>>>>>
>>>>>> function main() {
>>>>>>     var server = new grpc.Server();
>>>>>>     server.addService(test.Greeter.service, {
>>>>>>         SayHello: SayHello,
>>>>>>         SayHelp: SayHelp
>>>>>>     });
>>>>>>     server.bind(argv.h, grpc.ServerCredentials.createInsecure());
>>>>>>     server.start();
>>>>>> }
>>>>>>   
>>>>>> main();
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> client.js:
>>>>>>
>>>>>> const grpc = require('grpc');
>>>>>> const util = require('util')
>>>>>> const protoLoader = require('@grpc/proto-loader');
>>>>>> const argv = require("minimist")(process.argv.slice(2));
>>>>>> console.dir(argv);
>>>>>>
>>>>>>
>>>>>> if (!argv.h) {
>>>>>>     console.log("Please start with -h xx.xx.xx.xx:xxxx");
>>>>>>     process.exit(1);
>>>>>> }
>>>>>> console.log(`Starting Node backend client on : ${argv.h}`);
>>>>>>
>>>>>>
>>>>>> const PROTOS_PATH = __dirname + '/../protos/';
>>>>>> const BESERVICE_PROTO_PATH = PROTOS_PATH + 'test.proto';
>>>>>>
>>>>>>
>>>>>> const beDefinition = protoLoader.loadSync(
>>>>>>     BESERVICE_PROTO_PATH,
>>>>>>     {keepCase: true,
>>>>>>      longs: String,
>>>>>>      enums: String,
>>>>>>      defaults: true,
>>>>>>      oneofs: true
>>>>>>     });
>>>>>>
>>>>>>
>>>>>> const test = grpc.loadPackageDefinition(beDefinition).helloworld;
>>>>>>
>>>>>>
>>>>>> function main() {
>>>>>>     var client = new test.Greeter(argv.h, grpc.credentials.
>>>>>> createInsecure());
>>>>>>     
>>>>>>     client.SayHello({ name: 'Darth' }, {}, (err, response) => {
>>>>>>         if (err) {
>>>>>>             console.error("error calling SayHello", err);
>>>>>>             return
>>>>>>         }
>>>>>>         console.log('Greeting:', response.message);
>>>>>>
>>>>>>
>>>>>>         client.SayHelp({ name: 'Darth' }, {}, (err, response) => {
>>>>>>             if (err) {
>>>>>>                 console.error("error calling SayHelp", err);
>>>>>>                 return
>>>>>>             }
>>>>>>             console.log('Help! ', response.message);
>>>>>>         });
>>>>>>     });
>>>>>>   }
>>>>>>   
>>>>>>   main();
>>>>>>
>>>>>>
>>>>>> I run the client and server on the same machine, using the same 
>>>>>> command line argument for the same host & port.
>>>>>>
>>>>>> Can anyone explain why I get "RPC method not implemented" on the 
>>>>>> second method defined in the  Greeter service above?
>>>>>>
>>>>>> wander@peniche:~/control-web/js$ !1186
>>>>>> node server.js -h 172.16.0.168:9090 &
>>>>>> [1] 57465
>>>>>> wander@peniche:~/control-web/js$ { _: [], h: '172.16.0.168:9090' }
>>>>>> Starting server.js on : 172.16.0.168:9090
>>>>>>
>>>>>>
>>>>>> wander@peniche:~/control-web/js$ !1187
>>>>>> node backendservice-node-client.js -h 172.16.0.168:9090
>>>>>> { _: [], h: '172.16.0.168:9090' }
>>>>>> Starting Node backend client on : 172.16.0.168:9090
>>>>>> Greeting: Hello! Darth
>>>>>> error calling SayHelp { Error: 12 UNIMPLEMENTED: RPC method not 
>>>>>> implemented /helloworld.Greeter/SayHelp
>>>>>>     at Object.exports.createStatusError (/home/wander/control-web/
>>>>>> node_modules/grpc/src/common.js:91:15)
>>>>>>     at Object.onReceiveStatus (/home/wander/control-web/node_modules/
>>>>>> grpc/src/client_interceptors.js:1204:28)
>>>>>>     at InterceptingListener._callNext (/home/wander/control-web/
>>>>>> node_modules/grpc/src/client_interceptors.js:568:42)
>>>>>>     at InterceptingListener.onReceiveStatus (/home/wander/control-web
>>>>>> /node_modules/grpc/src/client_interceptors.js:618:8)
>>>>>>     at callback (/home/wander/control-web/node_modules/grpc/src/
>>>>>> client_interceptors.js:845:24)
>>>>>>   code: 12,
>>>>>>   metadata: Metadata { _internal_repr: {} },
>>>>>>   details: 'RPC method not implemented /helloworld.Greeter/SayHelp' }
>>>>>>
>>>>>>
>>>>>> If i remove the SayHelp method in the proto and update the client & 
>>>>>> server code, it works fine.
>>>>>>
>>>>>> THANKS
>>>>>>
>>>>>> -- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "grpc.io" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> To post to this group, send email to [email protected].
>>>>>> Visit this group at https://groups.google.com/group/grpc-io.
>>>>>> To view this discussion on the web visit 
>>>>>> https://groups.google.com/d/msgid/grpc-io/3c7c48bc-3612-4c7e-9b30-9a30e47d1286%40googlegroups.com
>>>>>>  
>>>>>> <https://groups.google.com/d/msgid/grpc-io/3c7c48bc-3612-4c7e-9b30-9a30e47d1286%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>> .
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>>
>>>>> Mya Pitzeruse
>>>>>
>>>>> Senior Software Engineer - Service Infrastructure
>>>>>
>>>>> Gender Pronouns: She, Her, Hers
>>>>>
>>>>> [email protected]
>>>>>
>>>>>
>>>>> Indeed - We help people get jobs.
>>>>>
>>>>> Indeed.com <http://www.indeed.com/>
>>>>>
>>>>> Facebook <http://www.facebook.com/indeed>  |   
>>>>> <http://www.twitter.com/indeed>
>>>>>
>>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "grpc.io" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/grpc-io.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/grpc-io/9bcbda49-2257-4543-abc9-bc5b2600581d%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/grpc-io/9bcbda49-2257-4543-abc9-bc5b2600581d%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/4fb6e6e8-79eb-4a44-a289-a0ba73c53fb3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to