Skip to content

Creating a gRPC service listener on an existing TCP socket #2317

@ItalyPaleAle

Description

@ItalyPaleAle

Is your feature request related to a problem? Please describe.

The problem we have is that app A needs to invoke app B via gRPC, but app B is behind a firewall and cannot open ports. In order to do that, we have configured app A to create an ephemeral TCP listener: app B makes an outbound TCP connection to app A's listener, and then the connection is reused so app B starts a gRPC server on that connection.

We (Dapr project) need to support this scenario with app B being written in a variety of languages. App A is written in Go.

Describe the solution you'd like

We have implemented this in Go using go-grpc. We are able to create a net.Listener that returns an existing net.Conn, and the gRPC server can "listen" on that.

I am not able to find a way to create a gRPC listener on top of an existing TCP socket in the grpc-node SDK.

Describe alternatives you've considered

I have not been able to find alternatives to the grpc.bind method in this SDK, which always starts a new listener.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions