Allow server to start on tcp port or if windows, named pipe rather than unix socket. could not yet make it work on named pipe from js client (connects but error)

This commit is contained in:
guillaume.tardif 2020-05-16 16:39:08 +02:00 committed by Guillaume Tardif
parent 23d2eacf84
commit ecfffc6feb
6 changed files with 55 additions and 5 deletions

View file

@ -30,6 +30,8 @@ package server
import (
"context"
"errors"
"net"
"strings"
grpc_prometheus "github.com/grpc-ecosystem/go-grpc-prometheus"
"google.golang.org/grpc"
@ -57,6 +59,15 @@ func New() *grpc.Server {
return s
}
//CreateListener creates a listener either on tcp://, or local listener, supporting unix:// for unix socket or npipe:// for named pipes on windows
func CreateListener(address string) (net.Listener, error) {
if strings.HasPrefix(address, "tcp://") {
return net.Listen("tcp", strings.TrimPrefix(address, "tcp://"))
}
return createLocalListener(address)
}
func unary(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error) {
return grpc_prometheus.UnaryServerInterceptor(ctx, req, info, handler)
}