1
0
mirror of https://github.com/go-micro/go-micro.git synced 2025-01-05 10:20:53 +02:00
go-micro/plugins/codec/msgpackrpc
Jerry 93ba8cd0df
continue fix pre version go get bug that unknown v3.5.1 (#2188)
* 1.fix plugins go get bug.
2.update all mode.
3.add tidy tools

* continue fix pre version go get bug that unknown v3.5.1
2021-06-30 09:24:00 +01:00
..
codec.go update v3 plugins (#2105) 2021-01-20 21:01:10 +00:00
go.mod continue fix pre version go get bug that unknown v3.5.1 (#2188) 2021-06-30 09:24:00 +01:00
go.sum 1.fix plugins go get bug. (#2187) 2021-06-30 07:21:03 +01:00
README.md update v3 plugins (#2105) 2021-01-20 21:01:10 +00:00
rpc_test.go add all the plugins 2020-12-26 15:32:45 +00:00
rpc.go add all the plugins 2020-12-26 15:32:45 +00:00

MsgPack RPC Codec

Usage

Import the codec and set within the client/server

package main

import (
    "github.com/asim/go-micro/plugins/codec/msgpackrpc"
    "github.com/asim/go-micro/v3"
    "github.com/micro/go-micro/client"
    "github.com/micro/go-micro/server"
)

func main() {
    client := client.NewClient(
        client.Codec("application/msgpack", msgpackrpc.NewCodec),
        client.ContentType("application/msgpack"),
    )

    server := server.NewServer(
        server.Codec("application/msgpack", msgpackrpc.NewCodec),
    )

    service := micro.NewService(
        micro.Client(client),
        micro.Server(server),
    )

    // ...
}

Generating Request/Response types

The msgpack codec is much like protobuf. It expects the request/response types to conform to a specific interface. Usually this means defining some IDL and generating the required types.

Learn how to do that at github.com/tinylib/msgp