diff --git a/go/client/client.go b/go/client/client.go index 8d8e678..e60aacd 100644 --- a/go/client/client.go +++ b/go/client/client.go @@ -7,6 +7,7 @@ import ( "time" protocol "github.com/longportapp/openapi-protocol/go" + control "github.com/longportapp/openapi-protobufs/gen/go/control" "github.com/pkg/errors" "google.golang.org/protobuf/proto" @@ -104,8 +105,9 @@ type client struct { reconnectCount int doReconnectting bool - addr *url.URL - dialOptions *DialOptions + addr *url.URL + dialOptions *DialOptions + connectMetadata map[string]string } // Dial using to dial with server @@ -181,7 +183,7 @@ func (c *client) auth() error { } res, err := c.Do(context.Background(), &Request{ Cmd: uint32(control.Command_CMD_AUTH), - Body: &control.AuthRequest{Token: token}, + Body: &control.AuthRequest{Token: token, Metadata: c.connectMetadata}, }, RequestTimeout(c.dialOptions.AuthTimeout)) if err != nil { @@ -294,6 +296,7 @@ func (c *client) reconnect() error { func (c *client) reconnectDial() error { res, err := c.Do(c.Context, &Request{Cmd: uint32(control.Command_CMD_RECONNECT), Body: &control.ReconnectRequest{ SessionId: c.authInfo.SessionId, + Metadata: c.connectMetadata, }}, RequestTimeout(c.dialOptions.AuthTimeout)) if err != nil { diff --git a/go/client/options.go b/go/client/options.go index 8849a16..a5d71ec 100644 --- a/go/client/options.go +++ b/go/client/options.go @@ -191,3 +191,10 @@ func WithLogger(l protocol.Logger) ClientOption { c.Logger = l } } + +// WithConnectMetadata set connect metadata +func WithConnectMetadata(m map[string]string) ClientOption { + return func(c *client) { + c.connectMetadata = m + } +} diff --git a/go/go.mod b/go/go.mod index 197b73a..94d18af 100644 --- a/go/go.mod +++ b/go/go.mod @@ -7,7 +7,7 @@ require ( github.com/golang/protobuf v1.5.2 github.com/gorilla/websocket v1.5.0 github.com/longbridgeapp/assert v0.1.0 - github.com/longportapp/openapi-protobufs/gen/go v0.2.1 + github.com/longportapp/openapi-protobufs/gen/go v0.4.0 github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.7.0 google.golang.org/protobuf v1.28.1 diff --git a/go/go.sum b/go/go.sum index d19706d..03ab9d1 100644 --- a/go/go.sum +++ b/go/go.sum @@ -17,8 +17,8 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/longbridgeapp/assert v0.1.0 h1:KkQlHUJSpuUFkUDjwBJgghFl31+wwSDHTq/WRrvLjko= github.com/longbridgeapp/assert v0.1.0/go.mod h1:ew3umReliXtk1bBG4weVURxdvR0tsN+rCEfjnA4YfxI= -github.com/longportapp/openapi-protobufs/gen/go v0.2.1 h1:AaubbUBGkawGYR4+XMorOIHr9Drte2CZBwjEKp6C1mU= -github.com/longportapp/openapi-protobufs/gen/go v0.2.1/go.mod h1:/chiEwEW4CnOVgKTaCf8rQUwes00Ku8q1CvRpOueWfo= +github.com/longportapp/openapi-protobufs/gen/go v0.4.0 h1:+wD5sq/DZS7HCUL6nOe7v7nNuM1EvuEDluk69f2+2nM= +github.com/longportapp/openapi-protobufs/gen/go v0.4.0/go.mod h1:/chiEwEW4CnOVgKTaCf8rQUwes00Ku8q1CvRpOueWfo= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=