On Monday, November 22, 2021 at 7:09:22 PM UTC-8 [email protected] wrote:

> I didn't have any hint to locate which connection/fd from this 'tag'. I
> think grpc have some record to pair this 'tag' with connection. And if one
> client send multiple requests, each request has its own 'tag', but grpc
> will find the connection/fd from these tags. So I think I have to find
> this 'tag' - connection map inside grpc. But not find yet. Please correct
> me if i'm wrong.

Ah. You're asking about things like "which client is on the other end of
this call". Look at ServerContext::auth_context [1] and ServerContext::peer
[2]. My memory of exactly how Finish and FinializeResult work together is
hazy. If you no longer have access to the ServerContext when
Finish/FinializeResult is running, you'll need to copy the value you need
from the ServerContext into whatever per-tag data structure you use.

Consider, though, whether you need to be tracking the connection on a "per
socket"/"per fd" level or if you need to be tracking a "connection" at a
higher level, like a single user's "session" in your service. What should
the behavior be in the client device changes networks, like switching from a
cell connection to a WiFi connection? Are those different "connections" or
the same?

[1]: 
https://grpc.github.io/grpc/cpp/classgrpc_1_1_server_context.html#a2b28535186cbe2d7b6ed1ff59980191b
[2]: 
https://grpc.github.io/grpc/cpp/classgrpc_1_1_server_context.html#a6e94cf9e11550b34ab98271202f03adc

-- 
Christopher Warrington
Microsoft Corp.

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/7822e970-dbd1-4c38-afeb-b6378731f312n%40googlegroups.com.

Reply via email to