Ravi:
The client source IP/port information is present in the Attributes object
when the ServerCall is started, under the Metadata.Key
io.grpc.Grpc.TRANSPORT_ATTR_REMOTE_ADDR. You can stash away the ServerCall
when you server handler starts, or as a part of a ServerInterceptor. But
keep in mind that ServerCall is not synchronized, so if you ever share it
between threads you need to perform your own synchronization.

On Mon, Jan 8, 2018 at 2:03 PM, Ravi Jonnadula <[email protected]> wrote:

> Is there any option to get the client source IP/port information from the
> context (without needing to explicitly encode it from the client side
> metadata)?
>
> thanks.
>
> On Mon, Jan 8, 2018 at 1:32 PM, Arpit Baldeva <[email protected]> wrote:
>
>> You can do this at your application level. Say your first rpc is "login"
>> (or whatever you want it to be). You can create a "session" object in your
>> application and return it some sort of "session-key" in the metadata. After
>> that, your client must send that "session-key" in it's client context in
>> future rpcs and one of that could be your server streaming notification
>> rpc.
>>
>> On Monday, January 8, 2018 at 12:39:06 PM UTC-8, Ravi Jonnadula wrote:
>>>
>>> In my case, once he client initiates first RPC message, I wanted to keep
>>> the communication channel open between the server-clients.
>>> The sever shall be able to send message to a specific client at some
>>> later point of time through this RPC channel.
>>> For that, I shall be able to maintain a list/map of clients active based
>>> on the context information available.
>>> With the information available from context.Conetext() I was not able to
>>> distinguish different clients from the different/same remote.
>>>
>>> On Sat, Jan 6, 2018 at 1:42 PM Arpit Baldeva <[email protected]> wrote:
>>>
>>>> My question was mainly around how to make sure the client network
>>>> connection is cleaned up. I did end up with a simple mechanism to detect
>>>> session inactivity and terminate you streaming rpcs at that point. If I get
>>>> your question right, you just need to implement your notifications as a
>>>> server streaming rpc per client/session.
>>>>
>>>> On Fri, Jan 5, 2018 at 5:54 PM, <[email protected]> wrote:
>>>>
>>>>> Hi Arpit,
>>>>>
>>>>> Did you get this working?
>>>>>
>>>>> I am looking for similar scenario where I have to keep the list of
>>>>> client session information on the server side.
>>>>> Based on someother event, I have to determine which client shall
>>>>> handle this event and send message to that specific client.
>>>>>
>>>>> I don't seem to find these details from Context ... any help would be
>>>>> great
>>>>>
>>>>>
>>>>> On Tuesday, September 12, 2017 at 12:23:48 PM UTC-7, Arpit Baldeva
>>>>> wrote:
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> After reading https://github.com/ejona86/pro
>>>>>> posal/blob/a339b01be9eafffb1adc4db8c782469caed18bdc/A9-serve
>>>>>> r-side-conn-mgt.md , I am looking for a small clarification.
>>>>>>
>>>>>> It looks like the connections are not considered idle if they have
>>>>>> outstanding rpcs. That would mean it includes server streaming rpcs as
>>>>>> well, right? A common use case for server streaming rpcs is to allow for 
>>>>>> a
>>>>>> Server to Client Notification system. This means application need to do 
>>>>>> "no
>>>>>> rpc from client in some duration" detection as well in this scenario and
>>>>>> finish streaming rpc before grpc library can run the network layer clean 
>>>>>> up
>>>>>> on it's end?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "grpc.io" group.
>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>>>>> pic/grpc-io/g9oittuh_6c/unsubscribe.
>>>>> To unsubscribe from this group and all its topics, 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/77fd2acf-32a0-4452
>>>>> -86a1-ba6f97e782c4%40googlegroups.com
>>>>> <https://groups.google.com/d/msgid/grpc-io/77fd2acf-32a0-4452-86a1-ba6f97e782c4%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 a topic in the
>> Google Groups "grpc.io" group.
>> To unsubscribe from this topic, visit https://groups.google.com/d/to
>> pic/grpc-io/g9oittuh_6c/unsubscribe.
>> To unsubscribe from this group and all its topics, 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/ms
>> gid/grpc-io/468797ed-9c68-4fc4-a1c5-68f554acd297%40googlegroups.com
>> <https://groups.google.com/d/msgid/grpc-io/468797ed-9c68-4fc4-a1c5-68f554acd297%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/CAC-L5hLX%3DfmHZLSPH%2BXbbF9kM_w7ke%
> 3Dh83XeUvybvC-iMvwd7w%40mail.gmail.com
> <https://groups.google.com/d/msgid/grpc-io/CAC-L5hLX%3DfmHZLSPH%2BXbbF9kM_w7ke%3Dh83XeUvybvC-iMvwd7w%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Spencer Fang

-- 
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/CAK%3D-x_7ygGSV7kAa4Bgr7ZuuM4JmT5ZNMUDmPq%3Dto4HNh1XB_A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to