Rumah > pembangunan bahagian belakang > Golang > Pemintas pelanggan GRPC tersuai rantaian/DialOptions

Pemintas pelanggan GRPC tersuai rantaian/DialOptions

PHPz
Lepaskan: 2024-02-14 08:27:10
ke hadapan
904 orang telah melayarinya

链自定义 GRPC 客户端拦截器/DialOptions

Pemintas pelanggan GRPC tersuai dan DialOptions ialah alat yang sangat berguna apabila berkomunikasi melalui rangkaian. Alat ini boleh membantu pembangun menambah fungsi tambahan dan logik pemprosesan kepada klien GRPC untuk memenuhi keperluan khusus. Dalam artikel ini, editor PHP Banana akan memperkenalkan cara menggunakan alat ini untuk menyesuaikan dan mengoptimumkan tingkah laku pelanggan GRPC. Dengan menggunakan pemintas dan DialOptions ini, pembangun boleh dengan mudah melaksanakan permintaan tersuai dan pemprosesan tindak balas, pengurusan sambungan dan fungsi lain, dengan itu meningkatkan kebolehskalaan dan prestasi sistem. Mari kita terokai ciri hebat ini bersama-sama!

Kandungan soalan

Saya ingin memautkan beberapa DialOptions/pemintas sebelah pelanggan. Tetapi atas sebab tertentu hanya pemintas tersuai terkini dipanggil:

CB5C9B4EECA35A2077063ECDCD731918

Saya menambah TransportCredentials supaya tidak akan berlaku ralat pada permulaan (mengenai keselamatan pengangkutan yang hilang).

Apa yang saya hilang di sini?

Penyelesaian

Anda perlu memautkan pemintas (pelanggan | pelayan):

Lihat grpc.WithChainUnaryInterceptor

Contohnya:

func main() {
    myInt1 := func(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
        print("testInterceptor invoked")
        return invoker(ctx, method, req, reply, cc, opts...)
    }
    myInt2 := func(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error {
        print("testInterceptor2 invoked")
        return invoker(ctx, method, req, reply, cc, opts...)
    }
    opts := []grpc.DialOption{
        grpc.WithTransportCredentials(insecure.NewCredentials()),
        grpc.WithChainUnaryInterceptor(
            myInt1,
            myInt2,
        ),
    }

    _, err := grpc.DialContext(context.Background(), "my-adress:443", opts...)
    if err != nil {
        log.Fatal(err)
    }
}
Salin selepas log masuk

Atas ialah kandungan terperinci Pemintas pelanggan GRPC tersuai rantaian/DialOptions. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan