proxy

package
v5.4.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultMaxIdleConnsPerHost = 255

DefaultMaxIdleConnsPerHost is a reasonable value for all HTTP clients.

Variables

This section is empty.

Functions

func WarnUnknownProxyKeys

func WarnUnknownProxyKeys(jsonProxies []byte)

WarnUnknownProxyKeys is a helper to find keys not known by Centrifugo in proxy config.

Types

type CacheEmptyHandlerFunc added in v5.4.0

type CacheEmptyHandlerFunc func(
	ctx context.Context, channel string, chOpts rule.ChannelOptions) (centrifuge.CacheEmptyReply, error)

CacheEmptyHandlerFunc ...

type CacheEmptyProxy added in v5.4.0

type CacheEmptyProxy interface {
	NotifyCacheEmpty(context.Context, *proxyproto.NotifyCacheEmptyRequest) (*proxyproto.NotifyCacheEmptyResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
}

CacheEmptyProxy allows loading cached data from a source of truth.

func GetCacheEmptyProxy added in v5.4.0

func GetCacheEmptyProxy(p Config) (CacheEmptyProxy, error)

type CacheHandler added in v5.4.0

type CacheHandler struct {
	// contains filtered or unexported fields
}

CacheHandler ...

func NewCacheHandler added in v5.4.0

func NewCacheHandler(c CacheHandlerConfig) *CacheHandler

NewCacheHandler ...

func (*CacheHandler) Handle added in v5.4.0

Handle Document.

type CacheHandlerConfig added in v5.4.0

type CacheHandlerConfig struct {
	Proxies           map[string]CacheEmptyProxy
	GranularProxyMode bool
}

CacheHandlerConfig ...

type ChannelStreamReader added in v5.1.0

type ChannelStreamReader interface {
	Recv() (*proxyproto.StreamSubscribeResponse, error)
}

type Client

type Client interface {
	ID() string
	UserID() string
	Context() context.Context
	Transport() centrifuge.TransportInfo
	Unsubscribe(ch string, unsubscribe ...centrifuge.Unsubscribe)
	WritePublication(channel string, publication *centrifuge.Publication, sp centrifuge.StreamPosition) error
}

type Config added in v5.1.0

type Config struct {
	// Name is a unique name of proxy to reference.
	Name string `mapstructure:"name" json:"name"`
	// Endpoint - HTTP address or GRPC service endpoint.
	Endpoint string `mapstructure:"endpoint" json:"endpoint"`
	// Timeout for proxy request.
	Timeout tools.Duration `mapstructure:"timeout" json:"timeout,omitempty"`

	// HTTPHeaders is a list of HTTP headers to proxy. No headers used by proxy by default.
	// If GRPC proxy is used then request HTTP headers set to outgoing request metadata.
	HttpHeaders          []string                    `mapstructure:"http_headers" json:"http_headers,omitempty"`
	HttpStatusTransforms []HttpStatusToCodeTransform `mapstructure:"http_status_to_code_transforms" json:"http_status_to_code_transforms,omitempty"`

	// GRPCMetadata is a list of GRPC metadata keys to proxy. No meta keys used by proxy by
	// default. If HTTP proxy is used then these keys become outgoing request HTTP headers.
	GrpcMetadata []string `mapstructure:"grpc_metadata" json:"grpc_metadata,omitempty"`

	// StaticHttpHeaders is a static set of key/value pairs to attach to HTTP proxy request as
	// headers. Headers received from HTTP client request or metadata from GRPC client request
	// both have priority over values set in StaticHttpHeaders map.
	StaticHttpHeaders map[string]string `mapstructure:"static_http_headers" json:"static_http_headers,omitempty"`

	// BinaryEncoding makes proxy send data as base64 string (assuming it contains custom
	// non-JSON payload).
	BinaryEncoding bool `mapstructure:"binary_encoding" json:"binary_encoding,omitempty"`
	// IncludeConnectionMeta to each proxy request (except connect where it's obtained).
	IncludeConnectionMeta bool `mapstructure:"include_connection_meta" json:"include_connection_meta,omitempty"`

	// GrpcTLS is a common configuration for GRPC TLS.
	GrpcTLS tools.TLSConfig `mapstructure:"grpc_tls" json:"grpc_tls,omitempty"`
	// GrpcCertFile is a path to GRPC cert file on disk.
	GrpcCertFile string `mapstructure:"grpc_cert_file" json:"grpc_cert_file,omitempty"`
	// GrpcCredentialsKey is a custom key to add into per-RPC credentials.
	GrpcCredentialsKey string `mapstructure:"grpc_credentials_key" json:"grpc_credentials_key,omitempty"`
	// GrpcCredentialsValue is a custom value for GrpcCredentialsKey.
	GrpcCredentialsValue string `mapstructure:"grpc_credentials_value" json:"grpc_credentials_value,omitempty"`
	// GrpcCompression enables compression for outgoing calls (gzip).
	GrpcCompression bool `mapstructure:"grpc_compression" json:"grpc_compression,omitempty"`
	// contains filtered or unexported fields
}

Config for proxy.

type ConnectExtra

type ConnectExtra struct {
}

type ConnectHandler

type ConnectHandler struct {
	// contains filtered or unexported fields
}

ConnectHandler ...

func NewConnectHandler

func NewConnectHandler(c ConnectHandlerConfig, ruleContainer *rule.Container) *ConnectHandler

NewConnectHandler ...

func (*ConnectHandler) Handle

Handle returns connecting handler func.

type ConnectHandlerConfig

type ConnectHandlerConfig struct {
	Proxy ConnectProxy
}

ConnectHandlerConfig ...

type ConnectProxy

type ConnectProxy interface {
	ProxyConnect(context.Context, *proxyproto.ConnectRequest) (*proxyproto.ConnectResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
	// UseBase64 for bytes in requests from Centrifugo to application backend.
	UseBase64() bool
}

ConnectProxy allows to proxy connect requests to application backend to authenticate client connection.

func GetConnectProxy

func GetConnectProxy(p Config) (ConnectProxy, error)

type GRPCCacheEmptyProxy added in v5.4.0

type GRPCCacheEmptyProxy struct {
	// contains filtered or unexported fields
}

GRPCCacheEmptyProxy ...

func NewGRPCCacheEmptyProxy added in v5.4.0

func NewGRPCCacheEmptyProxy(p Config) (*GRPCCacheEmptyProxy, error)

NewGRPCCacheEmptyProxy ...

func (*GRPCCacheEmptyProxy) NotifyCacheEmpty added in v5.4.0

CacheEmpty ...

func (*GRPCCacheEmptyProxy) Protocol added in v5.4.0

func (p *GRPCCacheEmptyProxy) Protocol() string

Protocol ...

func (*GRPCCacheEmptyProxy) UseBase64 added in v5.4.0

func (p *GRPCCacheEmptyProxy) UseBase64() bool

UseBase64 ...

type GRPCConnectProxy

type GRPCConnectProxy struct {
	// contains filtered or unexported fields
}

GRPCConnectProxy ...

func NewGRPCConnectProxy

func NewGRPCConnectProxy(p Config) (*GRPCConnectProxy, error)

NewGRPCConnectProxy ...

func (*GRPCConnectProxy) Protocol

func (p *GRPCConnectProxy) Protocol() string

Protocol ...

func (*GRPCConnectProxy) ProxyConnect

ProxyConnect proxies connect control to application backend.

func (*GRPCConnectProxy) UseBase64

func (p *GRPCConnectProxy) UseBase64() bool

UseBase64 ...

type GRPCPublishProxy

type GRPCPublishProxy struct {
	// contains filtered or unexported fields
}

GRPCPublishProxy ...

func NewGRPCPublishProxy

func NewGRPCPublishProxy(p Config) (*GRPCPublishProxy, error)

NewGRPCPublishProxy ...

func (*GRPCPublishProxy) IncludeMeta

func (p *GRPCPublishProxy) IncludeMeta() bool

IncludeMeta ...

func (*GRPCPublishProxy) Protocol

func (p *GRPCPublishProxy) Protocol() string

Protocol ...

func (*GRPCPublishProxy) ProxyPublish

ProxyPublish proxies Publish to application backend.

func (*GRPCPublishProxy) UseBase64

func (p *GRPCPublishProxy) UseBase64() bool

UseBase64 ...

type GRPCRPCProxy

type GRPCRPCProxy struct {
	// contains filtered or unexported fields
}

GRPCRPCProxy ...

func NewGRPCRPCProxy

func NewGRPCRPCProxy(p Config) (*GRPCRPCProxy, error)

NewGRPCRPCProxy ...

func (*GRPCRPCProxy) IncludeMeta

func (p *GRPCRPCProxy) IncludeMeta() bool

IncludeMeta ...

func (*GRPCRPCProxy) Protocol

func (p *GRPCRPCProxy) Protocol() string

Protocol ...

func (*GRPCRPCProxy) ProxyRPC

ProxyRPC ...

func (*GRPCRPCProxy) UseBase64

func (p *GRPCRPCProxy) UseBase64() bool

UseBase64 ...

type GRPCRefreshProxy

type GRPCRefreshProxy struct {
	// contains filtered or unexported fields
}

GRPCRefreshProxy ...

func NewGRPCRefreshProxy

func NewGRPCRefreshProxy(p Config) (*GRPCRefreshProxy, error)

NewGRPCRefreshProxy ...

func (*GRPCRefreshProxy) IncludeMeta

func (p *GRPCRefreshProxy) IncludeMeta() bool

IncludeMeta ...

func (*GRPCRefreshProxy) Protocol

func (p *GRPCRefreshProxy) Protocol() string

Protocol ...

func (*GRPCRefreshProxy) ProxyRefresh

ProxyRefresh proxies refresh to application backend.

func (*GRPCRefreshProxy) UseBase64

func (p *GRPCRefreshProxy) UseBase64() bool

UseBase64 ...

type GRPCSubRefreshProxy

type GRPCSubRefreshProxy struct {
	// contains filtered or unexported fields
}

GRPCSubRefreshProxy ...

func NewGRPCSubRefreshProxy

func NewGRPCSubRefreshProxy(p Config) (*GRPCSubRefreshProxy, error)

NewGRPCSubRefreshProxy ...

func (*GRPCSubRefreshProxy) IncludeMeta

func (p *GRPCSubRefreshProxy) IncludeMeta() bool

IncludeMeta ...

func (*GRPCSubRefreshProxy) Protocol

func (p *GRPCSubRefreshProxy) Protocol() string

Protocol ...

func (*GRPCSubRefreshProxy) ProxySubRefresh

ProxySubRefresh proxies refresh to application backend.

func (*GRPCSubRefreshProxy) UseBase64

func (p *GRPCSubRefreshProxy) UseBase64() bool

UseBase64 ...

type GRPCSubscribeProxy

type GRPCSubscribeProxy struct {
	// contains filtered or unexported fields
}

GRPCSubscribeProxy ...

func NewGRPCSubscribeProxy

func NewGRPCSubscribeProxy(p Config) (*GRPCSubscribeProxy, error)

NewGRPCSubscribeProxy ...

func (*GRPCSubscribeProxy) IncludeMeta

func (p *GRPCSubscribeProxy) IncludeMeta() bool

IncludeMeta ...

func (*GRPCSubscribeProxy) Protocol

func (p *GRPCSubscribeProxy) Protocol() string

Protocol ...

func (*GRPCSubscribeProxy) ProxySubscribe

ProxySubscribe proxies Subscribe to application backend.

func (*GRPCSubscribeProxy) UseBase64

func (p *GRPCSubscribeProxy) UseBase64() bool

UseBase64 ...

type HTTPCacheEmptyProxy added in v5.4.0

type HTTPCacheEmptyProxy struct {
	// contains filtered or unexported fields
}

HTTPCacheEmptyProxy ...

func NewHTTPCacheEmptyProxy added in v5.4.0

func NewHTTPCacheEmptyProxy(p Config) (*HTTPCacheEmptyProxy, error)

NewHTTPCacheEmptyProxy ...

func (*HTTPCacheEmptyProxy) NotifyCacheEmpty added in v5.4.0

NotifyCacheEmpty ...

func (*HTTPCacheEmptyProxy) Protocol added in v5.4.0

func (p *HTTPCacheEmptyProxy) Protocol() string

Protocol ...

func (*HTTPCacheEmptyProxy) UseBase64 added in v5.4.0

func (p *HTTPCacheEmptyProxy) UseBase64() bool

UseBase64 ...

type HTTPCaller

type HTTPCaller interface {
	CallHTTP(context.Context, string, http.Header, []byte) ([]byte, error)
}

HTTPCaller is responsible for calling HTTP.

func NewHTTPCaller

func NewHTTPCaller(httpClient *http.Client) HTTPCaller

NewHTTPCaller creates new HTTPCaller.

type HTTPConnectProxy

type HTTPConnectProxy struct {
	// contains filtered or unexported fields
}

HTTPConnectProxy ...

func NewHTTPConnectProxy

func NewHTTPConnectProxy(p Config) (*HTTPConnectProxy, error)

NewHTTPConnectProxy ...

func (*HTTPConnectProxy) Protocol

func (p *HTTPConnectProxy) Protocol() string

Protocol ...

func (*HTTPConnectProxy) ProxyConnect

ProxyConnect proxies connect control to application backend.

func (*HTTPConnectProxy) UseBase64

func (p *HTTPConnectProxy) UseBase64() bool

UseBase64 ...

type HTTPPublishProxy

type HTTPPublishProxy struct {
	// contains filtered or unexported fields
}

HTTPPublishProxy ...

func NewHTTPPublishProxy

func NewHTTPPublishProxy(p Config) (*HTTPPublishProxy, error)

NewHTTPPublishProxy ...

func (*HTTPPublishProxy) IncludeMeta

func (p *HTTPPublishProxy) IncludeMeta() bool

IncludeMeta ...

func (*HTTPPublishProxy) Protocol

func (p *HTTPPublishProxy) Protocol() string

Protocol ...

func (*HTTPPublishProxy) ProxyPublish

ProxyPublish proxies Publish to application backend.

func (*HTTPPublishProxy) UseBase64

func (p *HTTPPublishProxy) UseBase64() bool

UseBase64 ...

type HTTPRPCProxy

type HTTPRPCProxy struct {
	// contains filtered or unexported fields
}

HTTPRPCProxy ...

func NewHTTPRPCProxy

func NewHTTPRPCProxy(p Config) (*HTTPRPCProxy, error)

NewHTTPRPCProxy ...

func (*HTTPRPCProxy) IncludeMeta

func (p *HTTPRPCProxy) IncludeMeta() bool

IncludeMeta ...

func (*HTTPRPCProxy) Protocol

func (p *HTTPRPCProxy) Protocol() string

Protocol ...

func (*HTTPRPCProxy) ProxyRPC

ProxyRPC ...

func (*HTTPRPCProxy) UseBase64

func (p *HTTPRPCProxy) UseBase64() bool

UseBase64 ...

type HTTPRefreshProxy

type HTTPRefreshProxy struct {
	// contains filtered or unexported fields
}

HTTPRefreshProxy ...

func NewHTTPRefreshProxy

func NewHTTPRefreshProxy(p Config) (*HTTPRefreshProxy, error)

NewHTTPRefreshProxy ...

func (*HTTPRefreshProxy) IncludeMeta

func (p *HTTPRefreshProxy) IncludeMeta() bool

IncludeMeta ...

func (*HTTPRefreshProxy) Protocol

func (p *HTTPRefreshProxy) Protocol() string

Protocol ...

func (*HTTPRefreshProxy) ProxyRefresh

ProxyRefresh proxies refresh to application backend.

func (*HTTPRefreshProxy) UseBase64

func (p *HTTPRefreshProxy) UseBase64() bool

UseBase64 ...

type HTTPSubRefreshProxy

type HTTPSubRefreshProxy struct {
	// contains filtered or unexported fields
}

HTTPSubRefreshProxy ...

func NewHTTPSubRefreshProxy

func NewHTTPSubRefreshProxy(p Config) (*HTTPSubRefreshProxy, error)

NewHTTPSubRefreshProxy ...

func (*HTTPSubRefreshProxy) IncludeMeta

func (p *HTTPSubRefreshProxy) IncludeMeta() bool

IncludeMeta ...

func (*HTTPSubRefreshProxy) Protocol

func (p *HTTPSubRefreshProxy) Protocol() string

Protocol ...

func (*HTTPSubRefreshProxy) ProxySubRefresh

ProxySubRefresh proxies refresh to application backend.

func (*HTTPSubRefreshProxy) UseBase64

func (p *HTTPSubRefreshProxy) UseBase64() bool

UseBase64 ...

type HTTPSubscribeProxy

type HTTPSubscribeProxy struct {
	// contains filtered or unexported fields
}

HTTPSubscribeProxy ...

func NewHTTPSubscribeProxy

func NewHTTPSubscribeProxy(p Config) (*HTTPSubscribeProxy, error)

NewHTTPSubscribeProxy ...

func (*HTTPSubscribeProxy) IncludeMeta

func (p *HTTPSubscribeProxy) IncludeMeta() bool

IncludeMeta ...

func (*HTTPSubscribeProxy) Protocol

func (p *HTTPSubscribeProxy) Protocol() string

Protocol ...

func (*HTTPSubscribeProxy) ProxySubscribe

ProxySubscribe proxies Subscribe to application backend.

func (*HTTPSubscribeProxy) UseBase64

func (p *HTTPSubscribeProxy) UseBase64() bool

UseBase64 ...

type HttpStatusToCodeTransform added in v5.4.7

type HttpStatusToCodeTransform struct {
	StatusCode   int                 `mapstructure:"status_code" json:"status_code"`
	ToError      TransformError      `mapstructure:"to_error" json:"to_error"`
	ToDisconnect TransformDisconnect `mapstructure:"to_disconnect" json:"to_disconnect"`
}

func (*HttpStatusToCodeTransform) Validate added in v5.4.7

func (t *HttpStatusToCodeTransform) Validate() error

type OnPublication added in v5.1.0

type OnPublication func(pub *proxyproto.Publication, err error)

type PerCallData

type PerCallData struct {
	Meta json.RawMessage
}

type PublishHandler

type PublishHandler struct {
	// contains filtered or unexported fields
}

PublishHandler ...

func NewPublishHandler

func NewPublishHandler(c PublishHandlerConfig) *PublishHandler

NewPublishHandler ...

func (*PublishHandler) Handle

Handle Publish.

type PublishHandlerConfig

type PublishHandlerConfig struct {
	Proxies           map[string]PublishProxy
	GranularProxyMode bool
}

PublishHandlerConfig ...

type PublishHandlerFunc

PublishHandlerFunc ...

type PublishProxy

type PublishProxy interface {
	ProxyPublish(context.Context, *proxyproto.PublishRequest) (*proxyproto.PublishResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
	// UseBase64 for bytes in requests from Centrifugo to application backend.
	UseBase64() bool
	// IncludeMeta ...
	IncludeMeta() bool
}

PublishProxy allows to send Publish requests.

func GetPublishProxy

func GetPublishProxy(p Config) (PublishProxy, error)

type PublishRequestHTTP

type PublishRequestHTTP struct {
	UserID  string `json:"user"`
	Channel string `json:"channel"`

	Data json.RawMessage `json:"data,omitempty"`
	// Base64Data to proxy binary data.
	Base64Data string `json:"b64data,omitempty"`
	// contains filtered or unexported fields
}

PublishRequestHTTP ...

type RPCHandler

type RPCHandler struct {
	// contains filtered or unexported fields
}

RPCHandler ...

func NewRPCHandler

func NewRPCHandler(c RPCHandlerConfig) *RPCHandler

NewRPCHandler ...

func (*RPCHandler) Handle

func (h *RPCHandler) Handle(node *centrifuge.Node) RPCHandlerFunc

Handle RPC.

type RPCHandlerConfig

type RPCHandlerConfig struct {
	Proxies           map[string]RPCProxy
	GranularProxyMode bool
}

RPCHandlerConfig ...

type RPCHandlerFunc

RPCHandlerFunc ...

type RPCProxy

type RPCProxy interface {
	ProxyRPC(context.Context, *proxyproto.RPCRequest) (*proxyproto.RPCResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
	// UseBase64 for bytes in requests from Centrifugo to application backend.
	UseBase64() bool
	// IncludeMeta ...
	IncludeMeta() bool
}

RPCProxy allows to proxy RPC requests to application backend.

func GetRpcProxy

func GetRpcProxy(p Config) (RPCProxy, error)

type RefreshExtra

type RefreshExtra struct {
	Meta json.RawMessage
}

type RefreshHandler

type RefreshHandler struct {
	// contains filtered or unexported fields
}

RefreshHandler ...

func NewRefreshHandler

func NewRefreshHandler(c RefreshHandlerConfig) *RefreshHandler

NewRefreshHandler ...

func (*RefreshHandler) Handle

Handle refresh.

type RefreshHandlerConfig

type RefreshHandlerConfig struct {
	Proxy RefreshProxy
}

RefreshHandlerConfig ...

type RefreshHandlerFunc

RefreshHandlerFunc ...

type RefreshProxy

type RefreshProxy interface {
	ProxyRefresh(context.Context, *proxyproto.RefreshRequest) (*proxyproto.RefreshResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
	// UseBase64 for bytes in requests from Centrifugo to application backend.
	UseBase64() bool
	// IncludeMeta ...
	IncludeMeta() bool
}

RefreshProxy allows to send refresh requests.

func GetRefreshProxy

func GetRefreshProxy(p Config) (RefreshProxy, error)

type RefreshRequestHTTP

type RefreshRequestHTTP struct {
	UserID string `json:"user"`
	// contains filtered or unexported fields
}

RefreshRequestHTTP ...

type StreamPublishFunc added in v5.1.0

type StreamPublishFunc func(data []byte) error

StreamPublishFunc ...

type SubRefreshExtra

type SubRefreshExtra struct {
}

type SubRefreshHandler

type SubRefreshHandler struct {
	// contains filtered or unexported fields
}

SubRefreshHandler ...

func NewSubRefreshHandler

func NewSubRefreshHandler(c SubRefreshHandlerConfig) *SubRefreshHandler

NewSubRefreshHandler ...

func (*SubRefreshHandler) Handle

Handle refresh.

type SubRefreshHandlerConfig

type SubRefreshHandlerConfig struct {
	Proxies           map[string]SubRefreshProxy
	GranularProxyMode bool
}

SubRefreshHandlerConfig ...

type SubRefreshProxy

type SubRefreshProxy interface {
	ProxySubRefresh(context.Context, *proxyproto.SubRefreshRequest) (*proxyproto.SubRefreshResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
	// UseBase64 for bytes in requests from Centrifugo to application backend.
	UseBase64() bool
	// IncludeMeta ...
	IncludeMeta() bool
}

SubRefreshProxy allows to send sub refresh requests.

func GetSubRefreshProxy

func GetSubRefreshProxy(p Config) (SubRefreshProxy, error)

type SubRefreshRequestHTTP

type SubRefreshRequestHTTP struct {
	UserID  string `json:"user"`
	Channel string `json:"channel"`
	// contains filtered or unexported fields
}

SubRefreshRequestHTTP ...

type SubscribeExtra

type SubscribeExtra struct {
}

type SubscribeHandler

type SubscribeHandler struct {
	// contains filtered or unexported fields
}

SubscribeHandler ...

func NewSubscribeHandler

func NewSubscribeHandler(c SubscribeHandlerConfig) *SubscribeHandler

NewSubscribeHandler ...

func (*SubscribeHandler) Handle

Handle Subscribe.

type SubscribeHandlerConfig

type SubscribeHandlerConfig struct {
	Proxies           map[string]SubscribeProxy
	GranularProxyMode bool
}

SubscribeHandlerConfig ...

type SubscribeProxy

type SubscribeProxy interface {
	ProxySubscribe(context.Context, *proxyproto.SubscribeRequest) (*proxyproto.SubscribeResponse, error)
	// Protocol for metrics and logging.
	Protocol() string
	// UseBase64 for bytes in requests from Centrifugo to application backend.
	UseBase64() bool
	// IncludeMeta ...
	IncludeMeta() bool
}

SubscribeProxy allows to send Subscribe requests.

func GetSubscribeProxy

func GetSubscribeProxy(p Config) (SubscribeProxy, error)

type SubscribeStreamHandler added in v5.1.0

type SubscribeStreamHandler struct {
	// contains filtered or unexported fields
}

SubscribeStreamHandler ...

func NewSubscribeStreamHandler added in v5.1.0

func NewSubscribeStreamHandler(c SubscribeStreamHandlerConfig) *SubscribeStreamHandler

NewSubscribeStreamHandler ...

func (*SubscribeStreamHandler) Handle added in v5.1.0

Handle ...

type SubscribeStreamHandlerConfig added in v5.1.0

type SubscribeStreamHandlerConfig struct {
	Proxies           map[string]*SubscribeStreamProxy
	GranularProxyMode bool
}

SubscribeStreamHandlerConfig ...

type SubscribeStreamHandlerFunc added in v5.1.0

SubscribeStreamHandlerFunc ...

type SubscribeStreamProxy added in v5.1.0

type SubscribeStreamProxy struct {
	// contains filtered or unexported fields
}

func NewSubscribeStreamProxy added in v5.1.0

func NewSubscribeStreamProxy(p Config) (*SubscribeStreamProxy, error)

func (*SubscribeStreamProxy) SubscribeBidirectional added in v5.1.0

SubscribeBidirectional ...

func (*SubscribeStreamProxy) SubscribeStream added in v5.1.0

SubscribeStream ...

func (*SubscribeStreamProxy) SubscribeUnidirectional added in v5.1.0

SubscribeUnidirectional ...

type TransformDisconnect added in v5.4.7

type TransformDisconnect struct {
	Code   uint32 `mapstructure:"code" json:"code"`
	Reason string `mapstructure:"reason" json:"reason"`
}

type TransformError added in v5.4.7

type TransformError struct {
	Code      uint32 `mapstructure:"code" json:"code"`
	Message   string `mapstructure:"message" json:"message"`
	Temporary bool   `mapstructure:"temporary" json:"temporary"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL