I have a *nodejs* server and a *nodejs* client. With a "streaming client
<--> streaming server" when
- I call the *.end()* method on the *client* object, the *.on('end')* event
is called on the *server*
- I disconnect the *client* code with *ctrl+c, *also the *.on('end')* event
is called on the *server*
(I shared my code below.)
it means that the server will understand that a client is
dead(disconnected), so there will be no more resource consumption on the
server. Did I miss something or not?
I don't know how to implement the heart-beat on this situations, any clue
would be appreciated.
*Server.js*
var PROTO_PATH = __dirname + '/../../protos/hellostreamingworld.proto';
var grpc = require('grpc');
var hello_proto = grpc.load(PROTO_PATH).hellostreamingworld;
/**
* Implements the SayHello RPC method.
*/
function sayHello(call) {
call.on('data', () => {
call.write('recieved')
})
call.on('end', () => {
console.log(call.request);
})
console.log("call object is: ", call);
}
/**
* Starts an RPC server that receives requests for the Greeter service at
the
* sample server port
*/
function main() {
var server = new grpc.Server();
server.addProtoService(hello_proto.MultiGreeter.service, {sayHello:
sayHello});
server.bind('localhost:50051', grpc.ServerCredentials.createInsecure());
server.start();
console.log('server is running :) ')
}
main();
Client.js
var PROTO_PATH = __dirname + '/../../protos/hellostreamingworld.proto';
var grpc = require('grpc');
var hello_proto = grpc.load(PROTO_PATH).hellostreamingworld;
var client = new hello_proto.MultiGreeter('localhost:50051',
grpc.credentials.createInsecure());
var user;
if (process.argv.length >= 3) {
user = process.argv[2];
} else {
user = "world";
}
call = client.sayHello()
call.on('data', (message) => {
console.log("server said: [%s]", message.message);
})
call.on('end', () => {
console.log("end @ client");
})
call.write({name: "hadi", num_greetings: "a"})
call.write({name: "hadi", num_greetings: "a"})
call.end() // you can ommit this and stop the process by ctrl-c. same
behaviour
On Saturday, February 25, 2017 at 3:49:59 AM UTC+3:30, [email protected]
wrote:
>
> Hi all,
>
> How can I detect in the server side when a client gets disconnected? The
> typical use case could be a chat server where you want to notify other
> users when somebody leaves ungracefully.
>
> I haven't been able to find a clear answer to this question yet. I'm
> using Go implementation.
>
> Regards,
>
--
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/1e69ed74-6db4-4d2a-966e-a5302a696dea%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.