Documentation
¶
Overview ¶
Package protocol contains client-server protocol definitions of the Centrifugal ecosystem (Centrifugo server and Centrifuge library) together with fast encoders and decoders for them.
The protocol is described in client.proto and consists of three top-level messages:
- Command – sent from a client to a server. It carries exactly one request, for example ConnectRequest or SubscribeRequest.
- Reply – sent from a server to a client. It either answers a Command with a result (such as ConnectResult) or an Error, or wraps an asynchronous Push.
- Push – asynchronous server-to-client message, for example Publication, Join or Leave in a channel.
Serialization formats ¶
Every message may be serialized either as JSON or as Protobuf, see Type. Both formats are generated from the same client.proto, so the two are always in sync. Which one is used is negotiated by the transport – JSON is the default, Protobuf is used by clients which need a more compact binary representation.
Messages of both formats can be streamed one after another inside a single transport frame. In JSON messages are separated by a `\n` delimiter, in Protobuf every message is prefixed with its length encoded as a varint.
Encoders and decoders ¶
The package does not expose a single generic Marshal/Unmarshal pair. Instead it provides narrow interfaces for the parts of the protocol a server or a client needs to touch, each with a JSON and a Protobuf implementation:
- CommandEncoder and CommandDecoder (plus StreamCommandDecoder for decoding commands from an io.Reader with an optional message size limit).
- ReplyEncoder and ReplyDecoder.
- PushEncoder and ResultEncoder to encode parts of a Reply separately, so that the same encoded payload can be reused for many connections.
- DataEncoder to concatenate several already encoded messages into a single transport frame using the framing described above.
Implementations are chosen by protocol Type, usually through the pooled helpers – GetCommandDecoder/PutCommandDecoder, GetDataEncoder/PutDataEncoder, GetStreamCommandDecoderLimited/PutStreamCommandDecoder and ReplyPool. These helpers reuse objects between messages and let a server avoid allocations on hot paths.
Payloads ¶
Application-specific payloads (such as Publication Data) use the Raw type. Raw is a []byte which is passed through encoding as is, so the payload a publisher sent is the payload a subscriber decodes – see Raw.MarshalJSON for the single exception required by the JSON framing.
Stability ¶
The protocol itself is backwards compatible: fields are only added, never repurposed. The Go API of this package is shaped by the needs of Centrifugo and Centrifuge, and while it rarely changes it does not provide the compatibility guarantees of a v1 module – pin a version when depending on it directly.
Index ¶
- Constants
- Variables
- func DeflateDictionary(dict []byte, level int) []byte
- func InflateDictionary(data []byte, maxSize int) ([]byte, error)
- func PutCommandDecoder(protoType Type, e CommandDecoder)
- func PutDataEncoder(protoType Type, e DataEncoder)
- func PutResultEncoder(_ Type, _ ReplyEncoder)
- func PutStreamCommandDecoder(protoType Type, e StreamCommandDecoder)
- type ByteBuffer
- type ClientInfo
- func (*ClientInfo) Descriptor() ([]byte, []int)deprecated
- func (x *ClientInfo) GetChanInfo() []byte
- func (x *ClientInfo) GetClient() string
- func (x *ClientInfo) GetConnInfo() []byte
- func (x *ClientInfo) GetUser() string
- func (v ClientInfo) MarshalEasyJSON(w *writer)
- func (m *ClientInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *ClientInfo) MarshalToVT(dAtA []byte) (int, error)
- func (m *ClientInfo) MarshalVT() (dAtA []byte, err error)
- func (*ClientInfo) ProtoMessage()
- func (x *ClientInfo) ProtoReflect() protoreflect.Message
- func (x *ClientInfo) Reset()
- func (m *ClientInfo) SizeVT() (n int)
- func (x *ClientInfo) String() string
- func (v *ClientInfo) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *ClientInfo) UnmarshalVT(dAtA []byte) error
- type Command
- func (*Command) Descriptor() ([]byte, []int)deprecated
- func (x *Command) GetConnect() *ConnectRequest
- func (x *Command) GetHistory() *HistoryRequest
- func (x *Command) GetId() uint32
- func (x *Command) GetPing() *PingRequest
- func (x *Command) GetPresence() *PresenceRequest
- func (x *Command) GetPresenceStats() *PresenceStatsRequest
- func (x *Command) GetPublish() *PublishRequest
- func (x *Command) GetRefresh() *RefreshRequest
- func (x *Command) GetRpc() *RPCRequest
- func (x *Command) GetSend() *SendRequest
- func (x *Command) GetSubRefresh() *SubRefreshRequest
- func (x *Command) GetSubscribe() *SubscribeRequest
- func (x *Command) GetUnsubscribe() *UnsubscribeRequest
- func (v Command) MarshalEasyJSON(w *writer)
- func (m *Command) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Command) MarshalToVT(dAtA []byte) (int, error)
- func (m *Command) MarshalVT() (dAtA []byte, err error)
- func (*Command) ProtoMessage()
- func (x *Command) ProtoReflect() protoreflect.Message
- func (x *Command) Reset()
- func (m *Command) SizeVT() (n int)
- func (x *Command) String() string
- func (v *Command) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Command) UnmarshalVT(dAtA []byte) error
- type CommandDecoder
- type CommandEncoder
- type Connect
- func (*Connect) Descriptor() ([]byte, []int)deprecated
- func (x *Connect) GetClient() string
- func (x *Connect) GetData() []byte
- func (x *Connect) GetExpires() bool
- func (x *Connect) GetNode() string
- func (x *Connect) GetPing() uint32
- func (x *Connect) GetPong() bool
- func (x *Connect) GetSession() string
- func (x *Connect) GetSubs() map[string]*SubscribeResult
- func (x *Connect) GetTime() int64
- func (x *Connect) GetTtl() uint32
- func (x *Connect) GetVersion() string
- func (v Connect) MarshalEasyJSON(w *writer)
- func (m *Connect) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Connect) MarshalToVT(dAtA []byte) (int, error)
- func (m *Connect) MarshalVT() (dAtA []byte, err error)
- func (*Connect) ProtoMessage()
- func (x *Connect) ProtoReflect() protoreflect.Message
- func (x *Connect) Reset()
- func (m *Connect) SizeVT() (n int)
- func (x *Connect) String() string
- func (v *Connect) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Connect) UnmarshalVT(dAtA []byte) error
- type ConnectRequest
- func (*ConnectRequest) Descriptor() ([]byte, []int)deprecated
- func (x *ConnectRequest) GetData() []byte
- func (x *ConnectRequest) GetDict() string
- func (x *ConnectRequest) GetFlag() int64
- func (x *ConnectRequest) GetHeaders() map[string]string
- func (x *ConnectRequest) GetName() string
- func (x *ConnectRequest) GetProfile() string
- func (x *ConnectRequest) GetSubs() map[string]*SubscribeRequest
- func (x *ConnectRequest) GetToken() string
- func (x *ConnectRequest) GetVersion() string
- func (v ConnectRequest) MarshalEasyJSON(w *writer)
- func (m *ConnectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *ConnectRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *ConnectRequest) MarshalVT() (dAtA []byte, err error)
- func (*ConnectRequest) ProtoMessage()
- func (x *ConnectRequest) ProtoReflect() protoreflect.Message
- func (x *ConnectRequest) Reset()
- func (m *ConnectRequest) SizeVT() (n int)
- func (x *ConnectRequest) String() string
- func (v *ConnectRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *ConnectRequest) UnmarshalVT(dAtA []byte) error
- type ConnectResult
- func (*ConnectResult) Descriptor() ([]byte, []int)deprecated
- func (x *ConnectResult) GetClient() string
- func (x *ConnectResult) GetData() []byte
- func (x *ConnectResult) GetDict() *Dictionary
- func (x *ConnectResult) GetExpires() bool
- func (x *ConnectResult) GetFlag() int64
- func (x *ConnectResult) GetNode() string
- func (x *ConnectResult) GetPing() uint32
- func (x *ConnectResult) GetPong() bool
- func (x *ConnectResult) GetSession() string
- func (x *ConnectResult) GetSubs() map[string]*SubscribeResult
- func (x *ConnectResult) GetTime() int64
- func (x *ConnectResult) GetTtl() uint32
- func (x *ConnectResult) GetVersion() string
- func (v ConnectResult) MarshalEasyJSON(w *writer)
- func (m *ConnectResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *ConnectResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *ConnectResult) MarshalVT() (dAtA []byte, err error)
- func (*ConnectResult) ProtoMessage()
- func (x *ConnectResult) ProtoReflect() protoreflect.Message
- func (x *ConnectResult) Reset()
- func (m *ConnectResult) SizeVT() (n int)
- func (x *ConnectResult) String() string
- func (v *ConnectResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *ConnectResult) UnmarshalVT(dAtA []byte) error
- type DataEncoder
- type DeflateFrameCodec
- type Dictionary
- func (*Dictionary) Descriptor() ([]byte, []int)deprecated
- func (x *Dictionary) GetData() []byte
- func (x *Dictionary) GetDataB64() string
- func (x *Dictionary) GetId() string
- func (v Dictionary) MarshalEasyJSON(w *writer)
- func (m *Dictionary) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Dictionary) MarshalToVT(dAtA []byte) (int, error)
- func (m *Dictionary) MarshalVT() (dAtA []byte, err error)
- func (*Dictionary) ProtoMessage()
- func (x *Dictionary) ProtoReflect() protoreflect.Message
- func (x *Dictionary) Reset()
- func (m *Dictionary) SizeVT() (n int)
- func (x *Dictionary) String() string
- func (v *Dictionary) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Dictionary) UnmarshalVT(dAtA []byte) error
- type Disconnect
- func (*Disconnect) Descriptor() ([]byte, []int)deprecated
- func (x *Disconnect) GetCode() uint32
- func (x *Disconnect) GetReason() string
- func (x *Disconnect) GetReconnect() bool
- func (v Disconnect) MarshalEasyJSON(w *writer)
- func (m *Disconnect) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Disconnect) MarshalToVT(dAtA []byte) (int, error)
- func (m *Disconnect) MarshalVT() (dAtA []byte, err error)
- func (*Disconnect) ProtoMessage()
- func (x *Disconnect) ProtoReflect() protoreflect.Message
- func (x *Disconnect) Reset()
- func (m *Disconnect) SizeVT() (n int)
- func (x *Disconnect) String() string
- func (v *Disconnect) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Disconnect) UnmarshalVT(dAtA []byte) error
- type EmulationRequest
- func (*EmulationRequest) Descriptor() ([]byte, []int)deprecated
- func (x *EmulationRequest) GetData() []byte
- func (x *EmulationRequest) GetNode() string
- func (x *EmulationRequest) GetSession() string
- func (v EmulationRequest) MarshalEasyJSON(w *writer)
- func (m *EmulationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *EmulationRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *EmulationRequest) MarshalVT() (dAtA []byte, err error)
- func (*EmulationRequest) ProtoMessage()
- func (x *EmulationRequest) ProtoReflect() protoreflect.Message
- func (x *EmulationRequest) Reset()
- func (m *EmulationRequest) SizeVT() (n int)
- func (x *EmulationRequest) String() string
- func (v *EmulationRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *EmulationRequest) UnmarshalVT(dAtA []byte) error
- type Error
- func (*Error) Descriptor() ([]byte, []int)deprecated
- func (x *Error) GetCode() uint32
- func (x *Error) GetMessage() string
- func (x *Error) GetTemporary() bool
- func (v Error) MarshalEasyJSON(w *writer)
- func (m *Error) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Error) MarshalToVT(dAtA []byte) (int, error)
- func (m *Error) MarshalVT() (dAtA []byte, err error)
- func (*Error) ProtoMessage()
- func (x *Error) ProtoReflect() protoreflect.Message
- func (x *Error) Reset()
- func (m *Error) SizeVT() (n int)
- func (x *Error) String() string
- func (v *Error) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Error) UnmarshalVT(dAtA []byte) error
- type FilterNode
- func (*FilterNode) Descriptor() ([]byte, []int)deprecated
- func (x *FilterNode) GetCmp() string
- func (x *FilterNode) GetKey() string
- func (x *FilterNode) GetNodes() []*FilterNode
- func (x *FilterNode) GetOp() string
- func (x *FilterNode) GetVal() string
- func (x *FilterNode) GetVals() []string
- func (v FilterNode) MarshalEasyJSON(w *writer)
- func (m *FilterNode) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *FilterNode) MarshalToVT(dAtA []byte) (int, error)
- func (m *FilterNode) MarshalVT() (dAtA []byte, err error)
- func (*FilterNode) ProtoMessage()
- func (x *FilterNode) ProtoReflect() protoreflect.Message
- func (x *FilterNode) Reset()
- func (m *FilterNode) SizeVT() (n int)
- func (x *FilterNode) String() string
- func (v *FilterNode) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *FilterNode) UnmarshalVT(dAtA []byte) error
- type FrameType
- type HistoryRequest
- func (*HistoryRequest) Descriptor() ([]byte, []int)deprecated
- func (x *HistoryRequest) GetChannel() string
- func (x *HistoryRequest) GetLimit() int32
- func (x *HistoryRequest) GetReverse() bool
- func (x *HistoryRequest) GetSince() *StreamPosition
- func (v HistoryRequest) MarshalEasyJSON(w *writer)
- func (m *HistoryRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *HistoryRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *HistoryRequest) MarshalVT() (dAtA []byte, err error)
- func (*HistoryRequest) ProtoMessage()
- func (x *HistoryRequest) ProtoReflect() protoreflect.Message
- func (x *HistoryRequest) Reset()
- func (m *HistoryRequest) SizeVT() (n int)
- func (x *HistoryRequest) String() string
- func (v *HistoryRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *HistoryRequest) UnmarshalVT(dAtA []byte) error
- type HistoryResult
- func (*HistoryResult) Descriptor() ([]byte, []int)deprecated
- func (x *HistoryResult) GetEpoch() string
- func (x *HistoryResult) GetOffset() uint64
- func (x *HistoryResult) GetPublications() []*Publication
- func (v HistoryResult) MarshalEasyJSON(w *writer)
- func (m *HistoryResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *HistoryResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *HistoryResult) MarshalVT() (dAtA []byte, err error)
- func (*HistoryResult) ProtoMessage()
- func (x *HistoryResult) ProtoReflect() protoreflect.Message
- func (x *HistoryResult) Reset()
- func (m *HistoryResult) SizeVT() (n int)
- func (x *HistoryResult) String() string
- func (v *HistoryResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *HistoryResult) UnmarshalVT(dAtA []byte) error
- type JSONCommandDecoder
- type JSONCommandEncoder
- type JSONDataEncoder
- type JSONPushEncoder
- func (e *JSONPushEncoder) Encode(message *Push) ([]byte, error)
- func (e *JSONPushEncoder) EncodeConnect(message *Connect, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeDisconnect(message *Disconnect, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeJoin(message *Join, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeLeave(message *Leave, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeMessage(message *Message, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodePublication(message *Publication, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeRefresh(message *Refresh, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeSubscribe(message *Subscribe, reuse ...[]byte) ([]byte, error)
- func (e *JSONPushEncoder) EncodeUnsubscribe(message *Unsubscribe, reuse ...[]byte) ([]byte, error)
- type JSONReplyDecoder
- type JSONReplyEncoder
- type JSONResultEncoder
- func (e *JSONResultEncoder) EncodeConnectResult(res *ConnectResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodeHistoryResult(res *HistoryResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodePingResult(res *PingResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodePresenceResult(res *PresenceResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodePresenceStatsResult(res *PresenceStatsResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodePublishResult(res *PublishResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodeRPCResult(res *RPCResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodeRefreshResult(res *RefreshResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodeSubRefreshResult(res *SubRefreshResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodeSubscribeResult(res *SubscribeResult) ([]byte, error)
- func (e *JSONResultEncoder) EncodeUnsubscribeResult(res *UnsubscribeResult) ([]byte, error)
- type JSONStreamCommandDecoder
- type Join
- func (*Join) Descriptor() ([]byte, []int)deprecated
- func (x *Join) GetInfo() *ClientInfo
- func (v Join) MarshalEasyJSON(w *writer)
- func (m *Join) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Join) MarshalToVT(dAtA []byte) (int, error)
- func (m *Join) MarshalVT() (dAtA []byte, err error)
- func (*Join) ProtoMessage()
- func (x *Join) ProtoReflect() protoreflect.Message
- func (x *Join) Reset()
- func (m *Join) SizeVT() (n int)
- func (x *Join) String() string
- func (v *Join) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Join) UnmarshalVT(dAtA []byte) error
- type KeyedItem
- func (*KeyedItem) Descriptor() ([]byte, []int)deprecated
- func (x *KeyedItem) GetKey() string
- func (x *KeyedItem) GetVersion() uint64
- func (v KeyedItem) MarshalEasyJSON(w *writer)
- func (m *KeyedItem) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *KeyedItem) MarshalToVT(dAtA []byte) (int, error)
- func (m *KeyedItem) MarshalVT() (dAtA []byte, err error)
- func (*KeyedItem) ProtoMessage()
- func (x *KeyedItem) ProtoReflect() protoreflect.Message
- func (x *KeyedItem) Reset()
- func (m *KeyedItem) SizeVT() (n int)
- func (x *KeyedItem) String() string
- func (v *KeyedItem) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *KeyedItem) UnmarshalVT(dAtA []byte) error
- type Leave
- func (*Leave) Descriptor() ([]byte, []int)deprecated
- func (x *Leave) GetInfo() *ClientInfo
- func (v Leave) MarshalEasyJSON(w *writer)
- func (m *Leave) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Leave) MarshalToVT(dAtA []byte) (int, error)
- func (m *Leave) MarshalVT() (dAtA []byte, err error)
- func (*Leave) ProtoMessage()
- func (x *Leave) ProtoReflect() protoreflect.Message
- func (x *Leave) Reset()
- func (m *Leave) SizeVT() (n int)
- func (x *Leave) String() string
- func (v *Leave) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Leave) UnmarshalVT(dAtA []byte) error
- type Message
- func (*Message) Descriptor() ([]byte, []int)deprecated
- func (x *Message) GetData() []byte
- func (v Message) MarshalEasyJSON(w *writer)
- func (m *Message) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Message) MarshalToVT(dAtA []byte) (int, error)
- func (m *Message) MarshalVT() (dAtA []byte, err error)
- func (*Message) ProtoMessage()
- func (x *Message) ProtoReflect() protoreflect.Message
- func (x *Message) Reset()
- func (m *Message) SizeVT() (n int)
- func (x *Message) String() string
- func (v *Message) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Message) UnmarshalVT(dAtA []byte) error
- type PingRequest
- func (*PingRequest) Descriptor() ([]byte, []int)deprecated
- func (v PingRequest) MarshalEasyJSON(w *writer)
- func (m *PingRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PingRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *PingRequest) MarshalVT() (dAtA []byte, err error)
- func (*PingRequest) ProtoMessage()
- func (x *PingRequest) ProtoReflect() protoreflect.Message
- func (x *PingRequest) Reset()
- func (m *PingRequest) SizeVT() (n int)
- func (x *PingRequest) String() string
- func (v *PingRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PingRequest) UnmarshalVT(dAtA []byte) error
- type PingResult
- func (*PingResult) Descriptor() ([]byte, []int)deprecated
- func (v PingResult) MarshalEasyJSON(w *writer)
- func (m *PingResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PingResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *PingResult) MarshalVT() (dAtA []byte, err error)
- func (*PingResult) ProtoMessage()
- func (x *PingResult) ProtoReflect() protoreflect.Message
- func (x *PingResult) Reset()
- func (m *PingResult) SizeVT() (n int)
- func (x *PingResult) String() string
- func (v *PingResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PingResult) UnmarshalVT(dAtA []byte) error
- type PresenceRequest
- func (*PresenceRequest) Descriptor() ([]byte, []int)deprecated
- func (x *PresenceRequest) GetChannel() string
- func (v PresenceRequest) MarshalEasyJSON(w *writer)
- func (m *PresenceRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PresenceRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *PresenceRequest) MarshalVT() (dAtA []byte, err error)
- func (*PresenceRequest) ProtoMessage()
- func (x *PresenceRequest) ProtoReflect() protoreflect.Message
- func (x *PresenceRequest) Reset()
- func (m *PresenceRequest) SizeVT() (n int)
- func (x *PresenceRequest) String() string
- func (v *PresenceRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PresenceRequest) UnmarshalVT(dAtA []byte) error
- type PresenceResult
- func (*PresenceResult) Descriptor() ([]byte, []int)deprecated
- func (x *PresenceResult) GetPresence() map[string]*ClientInfo
- func (v PresenceResult) MarshalEasyJSON(w *writer)
- func (m *PresenceResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PresenceResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *PresenceResult) MarshalVT() (dAtA []byte, err error)
- func (*PresenceResult) ProtoMessage()
- func (x *PresenceResult) ProtoReflect() protoreflect.Message
- func (x *PresenceResult) Reset()
- func (m *PresenceResult) SizeVT() (n int)
- func (x *PresenceResult) String() string
- func (v *PresenceResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PresenceResult) UnmarshalVT(dAtA []byte) error
- type PresenceStatsRequest
- func (*PresenceStatsRequest) Descriptor() ([]byte, []int)deprecated
- func (x *PresenceStatsRequest) GetChannel() string
- func (v PresenceStatsRequest) MarshalEasyJSON(w *writer)
- func (m *PresenceStatsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PresenceStatsRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *PresenceStatsRequest) MarshalVT() (dAtA []byte, err error)
- func (*PresenceStatsRequest) ProtoMessage()
- func (x *PresenceStatsRequest) ProtoReflect() protoreflect.Message
- func (x *PresenceStatsRequest) Reset()
- func (m *PresenceStatsRequest) SizeVT() (n int)
- func (x *PresenceStatsRequest) String() string
- func (v *PresenceStatsRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PresenceStatsRequest) UnmarshalVT(dAtA []byte) error
- type PresenceStatsResult
- func (*PresenceStatsResult) Descriptor() ([]byte, []int)deprecated
- func (x *PresenceStatsResult) GetNumClients() uint32
- func (x *PresenceStatsResult) GetNumUsers() uint32
- func (v PresenceStatsResult) MarshalEasyJSON(w *writer)
- func (m *PresenceStatsResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PresenceStatsResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *PresenceStatsResult) MarshalVT() (dAtA []byte, err error)
- func (*PresenceStatsResult) ProtoMessage()
- func (x *PresenceStatsResult) ProtoReflect() protoreflect.Message
- func (x *PresenceStatsResult) Reset()
- func (m *PresenceStatsResult) SizeVT() (n int)
- func (x *PresenceStatsResult) String() string
- func (v *PresenceStatsResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PresenceStatsResult) UnmarshalVT(dAtA []byte) error
- type ProtobufCommandDecoder
- type ProtobufCommandEncoder
- type ProtobufDataEncoder
- type ProtobufPushEncoder
- func (e *ProtobufPushEncoder) Encode(message *Push) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeConnect(message *Connect, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeDisconnect(message *Disconnect, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeJoin(message *Join, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeLeave(message *Leave, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeMessage(message *Message, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodePublication(message *Publication, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeRefresh(message *Refresh, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeSubscribe(message *Subscribe, reuse ...[]byte) ([]byte, error)
- func (e *ProtobufPushEncoder) EncodeUnsubscribe(message *Unsubscribe, reuse ...[]byte) ([]byte, error)
- type ProtobufReplyDecoder
- type ProtobufReplyEncoder
- type ProtobufResultEncoder
- func (e *ProtobufResultEncoder) EncodeConnectResult(res *ConnectResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodeHistoryResult(res *HistoryResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodePingResult(res *PingResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodePresenceResult(res *PresenceResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodePresenceStatsResult(res *PresenceStatsResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodePublishResult(res *PublishResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodeRPCResult(res *RPCResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodeRefreshResult(res *RefreshResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodeSubRefreshResult(res *SubRefreshResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodeSubscribeResult(res *SubscribeResult) ([]byte, error)
- func (e *ProtobufResultEncoder) EncodeUnsubscribeResult(res *UnsubscribeResult) ([]byte, error)
- type ProtobufStreamCommandDecoder
- type Publication
- func (*Publication) Descriptor() ([]byte, []int)deprecated
- func (x *Publication) GetChannel() string
- func (x *Publication) GetData() []byte
- func (x *Publication) GetDelta() bool
- func (x *Publication) GetEpoch() string
- func (x *Publication) GetInfo() *ClientInfo
- func (x *Publication) GetKey() string
- func (x *Publication) GetOffset() uint64
- func (x *Publication) GetPrevData() []byte
- func (x *Publication) GetRemoved() bool
- func (x *Publication) GetScore() int64
- func (x *Publication) GetTags() map[string]string
- func (x *Publication) GetTime() int64
- func (x *Publication) GetVersion() uint64
- func (v Publication) MarshalEasyJSON(w *writer)
- func (m *Publication) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Publication) MarshalToVT(dAtA []byte) (int, error)
- func (m *Publication) MarshalVT() (dAtA []byte, err error)
- func (*Publication) ProtoMessage()
- func (x *Publication) ProtoReflect() protoreflect.Message
- func (x *Publication) Reset()
- func (m *Publication) SizeVT() (n int)
- func (x *Publication) String() string
- func (v *Publication) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Publication) UnmarshalVT(dAtA []byte) error
- type PublishRequest
- func (*PublishRequest) Descriptor() ([]byte, []int)deprecated
- func (x *PublishRequest) GetChannel() string
- func (x *PublishRequest) GetData() []byte
- func (x *PublishRequest) GetKey() string
- func (x *PublishRequest) GetRemoved() bool
- func (x *PublishRequest) GetType() int32
- func (v PublishRequest) MarshalEasyJSON(w *writer)
- func (m *PublishRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PublishRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *PublishRequest) MarshalVT() (dAtA []byte, err error)
- func (*PublishRequest) ProtoMessage()
- func (x *PublishRequest) ProtoReflect() protoreflect.Message
- func (x *PublishRequest) Reset()
- func (m *PublishRequest) SizeVT() (n int)
- func (x *PublishRequest) String() string
- func (v *PublishRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PublishRequest) UnmarshalVT(dAtA []byte) error
- type PublishResult
- func (*PublishResult) Descriptor() ([]byte, []int)deprecated
- func (v PublishResult) MarshalEasyJSON(w *writer)
- func (m *PublishResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *PublishResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *PublishResult) MarshalVT() (dAtA []byte, err error)
- func (*PublishResult) ProtoMessage()
- func (x *PublishResult) ProtoReflect() protoreflect.Message
- func (x *PublishResult) Reset()
- func (m *PublishResult) SizeVT() (n int)
- func (x *PublishResult) String() string
- func (v *PublishResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *PublishResult) UnmarshalVT(dAtA []byte) error
- type Push
- func (*Push) Descriptor() ([]byte, []int)deprecated
- func (x *Push) GetChannel() string
- func (x *Push) GetConnect() *Connect
- func (x *Push) GetDisconnect() *Disconnect
- func (x *Push) GetId() int64
- func (x *Push) GetJoin() *Join
- func (x *Push) GetLeave() *Leave
- func (x *Push) GetMessage() *Message
- func (x *Push) GetPub() *Publication
- func (x *Push) GetRefresh() *Refresh
- func (x *Push) GetSubscribe() *Subscribe
- func (x *Push) GetUnsubscribe() *Unsubscribe
- func (v Push) MarshalEasyJSON(w *writer)
- func (m *Push) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Push) MarshalToVT(dAtA []byte) (int, error)
- func (m *Push) MarshalVT() (dAtA []byte, err error)
- func (*Push) ProtoMessage()
- func (x *Push) ProtoReflect() protoreflect.Message
- func (x *Push) Reset()
- func (m *Push) SizeVT() (n int)
- func (x *Push) String() string
- func (v *Push) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Push) UnmarshalVT(dAtA []byte) error
- type PushEncoder
- type RPCRequest
- func (*RPCRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RPCRequest) GetData() []byte
- func (x *RPCRequest) GetMethod() string
- func (v RPCRequest) MarshalEasyJSON(w *writer)
- func (m *RPCRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *RPCRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *RPCRequest) MarshalVT() (dAtA []byte, err error)
- func (*RPCRequest) ProtoMessage()
- func (x *RPCRequest) ProtoReflect() protoreflect.Message
- func (x *RPCRequest) Reset()
- func (m *RPCRequest) SizeVT() (n int)
- func (x *RPCRequest) String() string
- func (v *RPCRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *RPCRequest) UnmarshalVT(dAtA []byte) error
- type RPCResult
- func (*RPCResult) Descriptor() ([]byte, []int)deprecated
- func (x *RPCResult) GetData() []byte
- func (v RPCResult) MarshalEasyJSON(w *writer)
- func (m *RPCResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *RPCResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *RPCResult) MarshalVT() (dAtA []byte, err error)
- func (*RPCResult) ProtoMessage()
- func (x *RPCResult) ProtoReflect() protoreflect.Message
- func (x *RPCResult) Reset()
- func (m *RPCResult) SizeVT() (n int)
- func (x *RPCResult) String() string
- func (v *RPCResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *RPCResult) UnmarshalVT(dAtA []byte) error
- type Raw
- type Refresh
- func (*Refresh) Descriptor() ([]byte, []int)deprecated
- func (x *Refresh) GetExpires() bool
- func (x *Refresh) GetTtl() uint32
- func (v Refresh) MarshalEasyJSON(w *writer)
- func (m *Refresh) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Refresh) MarshalToVT(dAtA []byte) (int, error)
- func (m *Refresh) MarshalVT() (dAtA []byte, err error)
- func (*Refresh) ProtoMessage()
- func (x *Refresh) ProtoReflect() protoreflect.Message
- func (x *Refresh) Reset()
- func (m *Refresh) SizeVT() (n int)
- func (x *Refresh) String() string
- func (v *Refresh) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Refresh) UnmarshalVT(dAtA []byte) error
- type RefreshRequest
- func (*RefreshRequest) Descriptor() ([]byte, []int)deprecated
- func (x *RefreshRequest) GetToken() string
- func (v RefreshRequest) MarshalEasyJSON(w *writer)
- func (m *RefreshRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *RefreshRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *RefreshRequest) MarshalVT() (dAtA []byte, err error)
- func (*RefreshRequest) ProtoMessage()
- func (x *RefreshRequest) ProtoReflect() protoreflect.Message
- func (x *RefreshRequest) Reset()
- func (m *RefreshRequest) SizeVT() (n int)
- func (x *RefreshRequest) String() string
- func (v *RefreshRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *RefreshRequest) UnmarshalVT(dAtA []byte) error
- type RefreshResult
- func (*RefreshResult) Descriptor() ([]byte, []int)deprecated
- func (x *RefreshResult) GetClient() string
- func (x *RefreshResult) GetExpires() bool
- func (x *RefreshResult) GetTtl() uint32
- func (x *RefreshResult) GetVersion() string
- func (v RefreshResult) MarshalEasyJSON(w *writer)
- func (m *RefreshResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *RefreshResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *RefreshResult) MarshalVT() (dAtA []byte, err error)
- func (*RefreshResult) ProtoMessage()
- func (x *RefreshResult) ProtoReflect() protoreflect.Message
- func (x *RefreshResult) Reset()
- func (m *RefreshResult) SizeVT() (n int)
- func (x *RefreshResult) String() string
- func (v *RefreshResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *RefreshResult) UnmarshalVT(dAtA []byte) error
- type Reply
- func (*Reply) Descriptor() ([]byte, []int)deprecated
- func (x *Reply) GetConnect() *ConnectResult
- func (x *Reply) GetError() *Error
- func (x *Reply) GetHistory() *HistoryResult
- func (x *Reply) GetId() uint32
- func (x *Reply) GetPing() *PingResult
- func (x *Reply) GetPresence() *PresenceResult
- func (x *Reply) GetPresenceStats() *PresenceStatsResult
- func (x *Reply) GetPublish() *PublishResult
- func (x *Reply) GetPush() *Push
- func (x *Reply) GetRefresh() *RefreshResult
- func (x *Reply) GetRpc() *RPCResult
- func (x *Reply) GetSubRefresh() *SubRefreshResult
- func (x *Reply) GetSubscribe() *SubscribeResult
- func (x *Reply) GetUnsubscribe() *UnsubscribeResult
- func (v Reply) MarshalEasyJSON(w *writer)
- func (m *Reply) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Reply) MarshalToVT(dAtA []byte) (int, error)
- func (m *Reply) MarshalVT() (dAtA []byte, err error)
- func (*Reply) ProtoMessage()
- func (x *Reply) ProtoReflect() protoreflect.Message
- func (x *Reply) Reset()
- func (m *Reply) SizeVT() (n int)
- func (x *Reply) String() string
- func (v *Reply) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Reply) UnmarshalVT(dAtA []byte) error
- type ReplyDecoder
- type ReplyEncoder
- type ReplyPoolCollection
- func (p *ReplyPoolCollection) AcquireConnectReply(result *ConnectResult) *Reply
- func (p *ReplyPoolCollection) AcquireHistoryReply(result *HistoryResult) *Reply
- func (p *ReplyPoolCollection) AcquirePresenceReply(result *PresenceResult) *Reply
- func (p *ReplyPoolCollection) AcquirePresenceStatsReply(result *PresenceStatsResult) *Reply
- func (p *ReplyPoolCollection) AcquirePublishReply(result *PublishResult) *Reply
- func (p *ReplyPoolCollection) AcquireRPCReply(result *RPCResult) *Reply
- func (p *ReplyPoolCollection) AcquireRefreshReply(result *RefreshResult) *Reply
- func (p *ReplyPoolCollection) AcquireSubRefreshReply(result *SubRefreshResult) *Reply
- func (p *ReplyPoolCollection) AcquireSubscribeReply(result *SubscribeResult) *Reply
- func (p *ReplyPoolCollection) AcquireUnsubscribeReply(result *UnsubscribeResult) *Reply
- func (p *ReplyPoolCollection) ReleaseConnectReply(r *Reply)
- func (p *ReplyPoolCollection) ReleaseHistoryReply(r *Reply)
- func (p *ReplyPoolCollection) ReleasePresenceReply(r *Reply)
- func (p *ReplyPoolCollection) ReleasePresenceStatsReply(r *Reply)
- func (p *ReplyPoolCollection) ReleasePublishReply(r *Reply)
- func (p *ReplyPoolCollection) ReleaseRPCReply(r *Reply)
- func (p *ReplyPoolCollection) ReleaseRefreshReply(r *Reply)
- func (p *ReplyPoolCollection) ReleaseSubRefreshReply(r *Reply)
- func (p *ReplyPoolCollection) ReleaseSubscribeReply(r *Reply)
- func (p *ReplyPoolCollection) ReleaseUnsubscribeReply(r *Reply)
- type ResultEncoder
- type SendRequest
- func (*SendRequest) Descriptor() ([]byte, []int)deprecated
- func (x *SendRequest) GetData() []byte
- func (v SendRequest) MarshalEasyJSON(w *writer)
- func (m *SendRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *SendRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *SendRequest) MarshalVT() (dAtA []byte, err error)
- func (*SendRequest) ProtoMessage()
- func (x *SendRequest) ProtoReflect() protoreflect.Message
- func (x *SendRequest) Reset()
- func (m *SendRequest) SizeVT() (n int)
- func (x *SendRequest) String() string
- func (v *SendRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *SendRequest) UnmarshalVT(dAtA []byte) error
- type StreamCommandDecoder
- type StreamPosition
- func (*StreamPosition) Descriptor() ([]byte, []int)deprecated
- func (x *StreamPosition) GetEpoch() string
- func (x *StreamPosition) GetOffset() uint64
- func (v StreamPosition) MarshalEasyJSON(w *writer)
- func (m *StreamPosition) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *StreamPosition) MarshalToVT(dAtA []byte) (int, error)
- func (m *StreamPosition) MarshalVT() (dAtA []byte, err error)
- func (*StreamPosition) ProtoMessage()
- func (x *StreamPosition) ProtoReflect() protoreflect.Message
- func (x *StreamPosition) Reset()
- func (m *StreamPosition) SizeVT() (n int)
- func (x *StreamPosition) String() string
- func (v *StreamPosition) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *StreamPosition) UnmarshalVT(dAtA []byte) error
- type SubRefreshRequest
- func (*SubRefreshRequest) Descriptor() ([]byte, []int)deprecated
- func (x *SubRefreshRequest) GetChannel() string
- func (x *SubRefreshRequest) GetToken() string
- func (x *SubRefreshRequest) GetTrack() []*TrackBatch
- func (x *SubRefreshRequest) GetType() int32
- func (x *SubRefreshRequest) GetUntrack() []string
- func (v SubRefreshRequest) MarshalEasyJSON(w *writer)
- func (m *SubRefreshRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *SubRefreshRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *SubRefreshRequest) MarshalVT() (dAtA []byte, err error)
- func (*SubRefreshRequest) ProtoMessage()
- func (x *SubRefreshRequest) ProtoReflect() protoreflect.Message
- func (x *SubRefreshRequest) Reset()
- func (m *SubRefreshRequest) SizeVT() (n int)
- func (x *SubRefreshRequest) String() string
- func (v *SubRefreshRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *SubRefreshRequest) UnmarshalVT(dAtA []byte) error
- type SubRefreshResult
- func (*SubRefreshResult) Descriptor() ([]byte, []int)deprecated
- func (x *SubRefreshResult) GetExpires() bool
- func (x *SubRefreshResult) GetItems() []*Publication
- func (x *SubRefreshResult) GetTtl() uint32
- func (v SubRefreshResult) MarshalEasyJSON(w *writer)
- func (m *SubRefreshResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *SubRefreshResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *SubRefreshResult) MarshalVT() (dAtA []byte, err error)
- func (*SubRefreshResult) ProtoMessage()
- func (x *SubRefreshResult) ProtoReflect() protoreflect.Message
- func (x *SubRefreshResult) Reset()
- func (m *SubRefreshResult) SizeVT() (n int)
- func (x *SubRefreshResult) String() string
- func (v *SubRefreshResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *SubRefreshResult) UnmarshalVT(dAtA []byte) error
- type Subscribe
- func (*Subscribe) Descriptor() ([]byte, []int)deprecated
- func (x *Subscribe) GetData() []byte
- func (x *Subscribe) GetEpoch() string
- func (x *Subscribe) GetOffset() uint64
- func (x *Subscribe) GetPositioned() bool
- func (x *Subscribe) GetRecoverable() bool
- func (v Subscribe) MarshalEasyJSON(w *writer)
- func (m *Subscribe) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Subscribe) MarshalToVT(dAtA []byte) (int, error)
- func (m *Subscribe) MarshalVT() (dAtA []byte, err error)
- func (*Subscribe) ProtoMessage()
- func (x *Subscribe) ProtoReflect() protoreflect.Message
- func (x *Subscribe) Reset()
- func (m *Subscribe) SizeVT() (n int)
- func (x *Subscribe) String() string
- func (v *Subscribe) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Subscribe) UnmarshalVT(dAtA []byte) error
- type SubscribeRequest
- func (*SubscribeRequest) Descriptor() ([]byte, []int)deprecated
- func (x *SubscribeRequest) GetAsc() bool
- func (x *SubscribeRequest) GetChannel() string
- func (x *SubscribeRequest) GetCursor() string
- func (x *SubscribeRequest) GetData() []byte
- func (x *SubscribeRequest) GetDelta() string
- func (x *SubscribeRequest) GetEpoch() string
- func (x *SubscribeRequest) GetFlag() int64
- func (x *SubscribeRequest) GetJoinLeave() bool
- func (x *SubscribeRequest) GetLimit() int32
- func (x *SubscribeRequest) GetOffset() uint64
- func (x *SubscribeRequest) GetPhase() int32
- func (x *SubscribeRequest) GetPositioned() bool
- func (x *SubscribeRequest) GetRecover() bool
- func (x *SubscribeRequest) GetRecoverable() bool
- func (x *SubscribeRequest) GetTf() *FilterNode
- func (x *SubscribeRequest) GetToken() string
- func (x *SubscribeRequest) GetType() int32
- func (v SubscribeRequest) MarshalEasyJSON(w *writer)
- func (m *SubscribeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *SubscribeRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *SubscribeRequest) MarshalVT() (dAtA []byte, err error)
- func (*SubscribeRequest) ProtoMessage()
- func (x *SubscribeRequest) ProtoReflect() protoreflect.Message
- func (x *SubscribeRequest) Reset()
- func (m *SubscribeRequest) SizeVT() (n int)
- func (x *SubscribeRequest) String() string
- func (v *SubscribeRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *SubscribeRequest) UnmarshalVT(dAtA []byte) error
- type SubscribeResult
- func (*SubscribeResult) Descriptor() ([]byte, []int)deprecated
- func (x *SubscribeResult) GetCursor() string
- func (x *SubscribeResult) GetData() []byte
- func (x *SubscribeResult) GetDelta() bool
- func (x *SubscribeResult) GetEpoch() string
- func (x *SubscribeResult) GetExpires() bool
- func (x *SubscribeResult) GetId() int64
- func (x *SubscribeResult) GetOffset() uint64
- func (x *SubscribeResult) GetPhase() int32
- func (x *SubscribeResult) GetPositioned() bool
- func (x *SubscribeResult) GetPublications() []*Publication
- func (x *SubscribeResult) GetPublishDebounce() uint32
- func (x *SubscribeResult) GetRecoverable() bool
- func (x *SubscribeResult) GetRecovered() bool
- func (x *SubscribeResult) GetState() []*Publication
- func (x *SubscribeResult) GetTtl() uint32
- func (x *SubscribeResult) GetType() int32
- func (x *SubscribeResult) GetWasRecovering() bool
- func (v SubscribeResult) MarshalEasyJSON(w *writer)
- func (m *SubscribeResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *SubscribeResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *SubscribeResult) MarshalVT() (dAtA []byte, err error)
- func (*SubscribeResult) ProtoMessage()
- func (x *SubscribeResult) ProtoReflect() protoreflect.Message
- func (x *SubscribeResult) Reset()
- func (m *SubscribeResult) SizeVT() (n int)
- func (x *SubscribeResult) String() string
- func (v *SubscribeResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *SubscribeResult) UnmarshalVT(dAtA []byte) error
- type TrackBatch
- func (*TrackBatch) Descriptor() ([]byte, []int)deprecated
- func (x *TrackBatch) GetItems() []*KeyedItem
- func (x *TrackBatch) GetSignature() string
- func (v TrackBatch) MarshalEasyJSON(w *writer)
- func (m *TrackBatch) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *TrackBatch) MarshalToVT(dAtA []byte) (int, error)
- func (m *TrackBatch) MarshalVT() (dAtA []byte, err error)
- func (*TrackBatch) ProtoMessage()
- func (x *TrackBatch) ProtoReflect() protoreflect.Message
- func (x *TrackBatch) Reset()
- func (m *TrackBatch) SizeVT() (n int)
- func (x *TrackBatch) String() string
- func (v *TrackBatch) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *TrackBatch) UnmarshalVT(dAtA []byte) error
- type Type
- type Unsubscribe
- func (*Unsubscribe) Descriptor() ([]byte, []int)deprecated
- func (x *Unsubscribe) GetCode() uint32
- func (x *Unsubscribe) GetReason() string
- func (v Unsubscribe) MarshalEasyJSON(w *writer)
- func (m *Unsubscribe) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *Unsubscribe) MarshalToVT(dAtA []byte) (int, error)
- func (m *Unsubscribe) MarshalVT() (dAtA []byte, err error)
- func (*Unsubscribe) ProtoMessage()
- func (x *Unsubscribe) ProtoReflect() protoreflect.Message
- func (x *Unsubscribe) Reset()
- func (m *Unsubscribe) SizeVT() (n int)
- func (x *Unsubscribe) String() string
- func (v *Unsubscribe) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *Unsubscribe) UnmarshalVT(dAtA []byte) error
- type UnsubscribeRequest
- func (*UnsubscribeRequest) Descriptor() ([]byte, []int)deprecated
- func (x *UnsubscribeRequest) GetChannel() string
- func (v UnsubscribeRequest) MarshalEasyJSON(w *writer)
- func (m *UnsubscribeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *UnsubscribeRequest) MarshalToVT(dAtA []byte) (int, error)
- func (m *UnsubscribeRequest) MarshalVT() (dAtA []byte, err error)
- func (*UnsubscribeRequest) ProtoMessage()
- func (x *UnsubscribeRequest) ProtoReflect() protoreflect.Message
- func (x *UnsubscribeRequest) Reset()
- func (m *UnsubscribeRequest) SizeVT() (n int)
- func (x *UnsubscribeRequest) String() string
- func (v *UnsubscribeRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *UnsubscribeRequest) UnmarshalVT(dAtA []byte) error
- type UnsubscribeResult
- func (*UnsubscribeResult) Descriptor() ([]byte, []int)deprecated
- func (v UnsubscribeResult) MarshalEasyJSON(w *writer)
- func (m *UnsubscribeResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
- func (m *UnsubscribeResult) MarshalToVT(dAtA []byte) (int, error)
- func (m *UnsubscribeResult) MarshalVT() (dAtA []byte, err error)
- func (*UnsubscribeResult) ProtoMessage()
- func (x *UnsubscribeResult) ProtoReflect() protoreflect.Message
- func (x *UnsubscribeResult) Reset()
- func (m *UnsubscribeResult) SizeVT() (n int)
- func (x *UnsubscribeResult) String() string
- func (v *UnsubscribeResult) UnmarshalEasyJSON(l *jlexer.Lexer)
- func (m *UnsubscribeResult) UnmarshalVT(dAtA []byte) error
Examples ¶
Constants ¶
const ( // FrameCodecRaw marks a frame whose payload follows verbatim. Every receiver // must support it: a sender falls back to it whenever compression would not // shrink a frame, or has been measured not to pay off for a connection. FrameCodecRaw byte = 0x00 // FrameCodecCompressed marks a frame compressed with whatever codec this // connection negotiated, against its active dictionary. FrameCodecCompressed byte = 0x01 )
Once a connection has negotiated frame compression, every frame starts with one of these markers.
The marker deliberately does not name a codec. Which codec a connection uses is settled once, at connect, by the capability flags the client advertised, so repeating it per frame would be redundant - and would make every new codec a protocol change. The marker only answers the one question that genuinely varies frame to frame: was this frame compressed at all.
const MinDictionaryCompressionLevel = 2
MinDictionaryCompressionLevel is the lowest level NewDeflateFrameCodec accepts.
DEFLATE implementations switch to specialised fast encoders below this which ignore the preset dictionary completely while still accepting it. The standard library does this at level 1: measured on a 61 byte frame against a 4KB dictionary it emits 66 bytes, versus 24 bytes at level 2 and above and 60 bytes with no dictionary at all. A level below this does not trade ratio for speed, it silently disables the entire feature while still paying to carry the dictionary around - so NewDeflateFrameCodec panics rather than accept one.
TestFrameCodecDictionaryActuallyApplies guards this.
Variables ¶
var ( // ErrFrameTooLarge is returned when a compressed frame expands beyond the // caller supplied limit. Without it a small frame could be inflated into an // arbitrary amount of memory. ErrFrameTooLarge = errors.New("centrifugal: decompressed frame too large") // ErrUnknownFrameCodec is returned for a frame marker the codec does not know. ErrUnknownFrameCodec = errors.New("centrifugal: unknown frame codec") // ErrEmptyFrame is returned for a frame with no codec marker at all. ErrEmptyFrame = errors.New("centrifugal: empty frame") )
var ( DefaultJsonPushEncoder = NewJSONPushEncoder() DefaultProtobufPushEncoder = NewProtobufPushEncoder() )
Default push encoders returned by GetPushEncoder. They are stateless, so a single instance per protocol type is shared by all connections.
var ( DefaultJsonReplyEncoder = NewJSONReplyEncoder() DefaultProtobufReplyEncoder = NewProtobufReplyEncoder() )
Default reply encoders returned by GetReplyEncoder. They are stateless, so a single instance per protocol type is shared by all connections.
var ErrMessageTooLarge = errors.New("message size exceeds the limit")
ErrMessageTooLarge is returned by a StreamCommandDecoder when a command in the stream exceeds the configured message size limit.
var File_client_proto protoreflect.FileDescriptor
var ReplyPool = &ReplyPoolCollection{}
ReplyPool is the shared collection of Reply pools.
Every Acquire method returns a Reply with the corresponding result field set, and with Id and Error zeroed. Once the Reply is encoded and no longer needed, pass it to the matching Release method – after that neither the Reply nor the result it referenced must be used.
Release clears the whole envelope, not just the result field: a pooled Reply is handed to a different connection next, so any Id or Error left on it would be sent to that connection instead.
Functions ¶
func DeflateDictionary ¶ added in v0.21.0
DeflateDictionary compresses dictionary content with raw DEFLATE and no preset dictionary, for delivery to a client that has nothing installed yet.
It carries no codec marker: this is content inside a Dictionary message rather than a frame, and dictionary content is always deflated, so there is nothing to signal. A dictionary is a concatenation of real message samples, so it is ordinary text and compresses several fold - which is the difference between a first dictionary a connection can afford and one it cannot.
level is a plain flate.NewWriter level: unlike NewDeflateFrameCodec's level, there is no preset dictionary here for a low level to silently ignore, so any valid flate level is fine - MinDictionaryCompressionLevel does not apply.
func InflateDictionary ¶ added in v0.21.0
InflateDictionary reverses DeflateDictionary, refusing anything that would expand past maxSize so a small crafted payload cannot be inflated into an unbounded allocation.
func PutCommandDecoder ¶
func PutCommandDecoder(protoType Type, e CommandDecoder)
PutCommandDecoder returns a CommandDecoder obtained with GetCommandDecoder to the pool. The decoder must not be used after that.
func PutDataEncoder ¶ added in v0.4.0
func PutDataEncoder(protoType Type, e DataEncoder)
PutDataEncoder returns a DataEncoder obtained with GetDataEncoder to the pool. The encoder must not be used after that, and neither must the slice returned by its FinishNoCopy method.
func PutResultEncoder ¶
func PutResultEncoder(_ Type, _ ReplyEncoder)
PutResultEncoder is a no-op kept for symmetry with GetResultEncoder: result encoders are stateless, so there is nothing to return to a pool.
func PutStreamCommandDecoder ¶ added in v0.9.0
func PutStreamCommandDecoder(protoType Type, e StreamCommandDecoder)
PutStreamCommandDecoder returns a StreamCommandDecoder obtained with GetStreamCommandDecoderLimited to the pool. The decoder must not be used after that.
Types ¶
type ByteBuffer ¶ added in v0.7.2
type ByteBuffer struct {
// B is the underlying byte slice.
B []byte
}
ByteBuffer implements a simple byte buffer.
type ClientInfo ¶
type ClientInfo struct {
User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user"`
Client string `protobuf:"bytes,2,opt,name=client,proto3" json:"client"`
ConnInfo Raw `protobuf:"bytes,3,opt,name=conn_info,json=connInfo,proto3" json:"conn_info,omitempty"`
ChanInfo Raw `protobuf:"bytes,4,opt,name=chan_info,json=chanInfo,proto3" json:"chan_info,omitempty"`
// contains filtered or unexported fields
}
ClientInfo contains information about client connection.
func (*ClientInfo) Descriptor
deprecated
func (*ClientInfo) Descriptor() ([]byte, []int)
Deprecated: Use ClientInfo.ProtoReflect.Descriptor instead.
func (*ClientInfo) GetChanInfo ¶ added in v0.7.0
func (x *ClientInfo) GetChanInfo() []byte
func (*ClientInfo) GetClient ¶
func (x *ClientInfo) GetClient() string
func (*ClientInfo) GetConnInfo ¶ added in v0.7.0
func (x *ClientInfo) GetConnInfo() []byte
func (*ClientInfo) GetUser ¶
func (x *ClientInfo) GetUser() string
func (ClientInfo) MarshalEasyJSON ¶ added in v0.6.0
func (v ClientInfo) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*ClientInfo) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *ClientInfo) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*ClientInfo) MarshalToVT ¶ added in v0.7.0
func (m *ClientInfo) MarshalToVT(dAtA []byte) (int, error)
func (*ClientInfo) MarshalVT ¶ added in v0.7.0
func (m *ClientInfo) MarshalVT() (dAtA []byte, err error)
func (*ClientInfo) ProtoMessage ¶
func (*ClientInfo) ProtoMessage()
func (*ClientInfo) ProtoReflect ¶ added in v0.7.0
func (x *ClientInfo) ProtoReflect() protoreflect.Message
func (*ClientInfo) Reset ¶
func (x *ClientInfo) Reset()
func (*ClientInfo) SizeVT ¶ added in v0.7.0
func (m *ClientInfo) SizeVT() (n int)
func (*ClientInfo) String ¶
func (x *ClientInfo) String() string
func (*ClientInfo) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *ClientInfo) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*ClientInfo) UnmarshalVT ¶ added in v0.7.0
func (m *ClientInfo) UnmarshalVT(dAtA []byte) error
type Command ¶
type Command struct {
// Id of command to let client match replies to commands.
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// Client can send one of the following requests. Server will
// only take the first non-null request out of these and may return an error if
// client passed more than one request. We are not using oneof here due to JSON
// interoperability concerns.
Connect *ConnectRequest `protobuf:"bytes,4,opt,name=connect,proto3" json:"connect,omitempty"`
Subscribe *SubscribeRequest `protobuf:"bytes,5,opt,name=subscribe,proto3" json:"subscribe,omitempty"`
Unsubscribe *UnsubscribeRequest `protobuf:"bytes,6,opt,name=unsubscribe,proto3" json:"unsubscribe,omitempty"`
Publish *PublishRequest `protobuf:"bytes,7,opt,name=publish,proto3" json:"publish,omitempty"`
Presence *PresenceRequest `protobuf:"bytes,8,opt,name=presence,proto3" json:"presence,omitempty"`
PresenceStats *PresenceStatsRequest `protobuf:"bytes,9,opt,name=presence_stats,json=presenceStats,proto3" json:"presence_stats,omitempty"`
History *HistoryRequest `protobuf:"bytes,10,opt,name=history,proto3" json:"history,omitempty"`
Ping *PingRequest `protobuf:"bytes,11,opt,name=ping,proto3" json:"ping,omitempty"`
Send *SendRequest `protobuf:"bytes,12,opt,name=send,proto3" json:"send,omitempty"`
Rpc *RPCRequest `protobuf:"bytes,13,opt,name=rpc,proto3" json:"rpc,omitempty"`
Refresh *RefreshRequest `protobuf:"bytes,14,opt,name=refresh,proto3" json:"refresh,omitempty"`
SubRefresh *SubRefreshRequest `protobuf:"bytes,15,opt,name=sub_refresh,json=subRefresh,proto3" json:"sub_refresh,omitempty"`
// contains filtered or unexported fields
}
Command sent from a client to a server.
func (*Command) Descriptor
deprecated
func (*Command) GetConnect ¶ added in v0.8.0
func (x *Command) GetConnect() *ConnectRequest
func (*Command) GetHistory ¶ added in v0.8.0
func (x *Command) GetHistory() *HistoryRequest
func (*Command) GetPing ¶ added in v0.8.0
func (x *Command) GetPing() *PingRequest
func (*Command) GetPresence ¶ added in v0.8.0
func (x *Command) GetPresence() *PresenceRequest
func (*Command) GetPresenceStats ¶ added in v0.8.0
func (x *Command) GetPresenceStats() *PresenceStatsRequest
func (*Command) GetPublish ¶ added in v0.8.0
func (x *Command) GetPublish() *PublishRequest
func (*Command) GetRefresh ¶ added in v0.8.0
func (x *Command) GetRefresh() *RefreshRequest
func (*Command) GetRpc ¶ added in v0.8.0
func (x *Command) GetRpc() *RPCRequest
func (*Command) GetSend ¶ added in v0.8.0
func (x *Command) GetSend() *SendRequest
func (*Command) GetSubRefresh ¶ added in v0.8.0
func (x *Command) GetSubRefresh() *SubRefreshRequest
func (*Command) GetSubscribe ¶ added in v0.8.0
func (x *Command) GetSubscribe() *SubscribeRequest
func (*Command) GetUnsubscribe ¶ added in v0.8.0
func (x *Command) GetUnsubscribe() *UnsubscribeRequest
func (Command) MarshalEasyJSON ¶ added in v0.6.0
func (v Command) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Command) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Command) MarshalToVT ¶ added in v0.7.0
func (*Command) ProtoMessage ¶
func (*Command) ProtoMessage()
func (*Command) ProtoReflect ¶ added in v0.7.0
func (x *Command) ProtoReflect() protoreflect.Message
func (*Command) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Command) UnmarshalVT ¶ added in v0.7.0
type CommandDecoder ¶
type CommandDecoder interface {
// Reset makes the decoder ready to decode commands from the given frame.
Reset([]byte) error
// Decode returns the next Command in the frame.
Decode() (*Command, error)
}
CommandDecoder decodes commands from a transport frame which may contain several of them, see DataEncoder for the framing used.
Decode returns io.EOF together with the last successfully decoded Command, so a non-nil Command must be handled even when an error is returned:
for {
cmd, err := decoder.Decode()
if cmd != nil {
// Handle the command.
}
if err != nil {
// io.EOF means the frame is fully processed.
break
}
}
A CommandDecoder is not safe for concurrent use. Use GetCommandDecoder and PutCommandDecoder to take one from a pool and return it back when done.
func GetCommandDecoder ¶
func GetCommandDecoder(protoType Type, data []byte) CommandDecoder
GetCommandDecoder returns a CommandDecoder for the given protocol type, taking it from a pool and resetting it to the given frame. Return it with PutCommandDecoder once the frame is fully processed. Any type other than TypeJSON is treated as TypeProtobuf.
Example ¶
A single transport frame may contain several commands: in JSON they are separated by a `\n` delimiter, in Protobuf each command is prefixed with its length. Decoders take care of the framing, so the loop is the same for both.
package main
import (
"errors"
"fmt"
"io"
"github.com/centrifugal/protocol"
)
func main() {
frame := []byte(`{"id":1,"connect":{"name":"go"}}
{"id":2,"subscribe":{"channel":"news"}}`)
decoder := protocol.GetCommandDecoder(protocol.TypeJSON, frame)
defer protocol.PutCommandDecoder(protocol.TypeJSON, decoder)
for {
cmd, err := decoder.Decode()
if cmd != nil {
// Server takes the first non-null request out of a Command.
switch {
case cmd.Connect != nil:
fmt.Println(cmd.Id, protocol.FrameTypeConnect, cmd.Connect.Name)
case cmd.Subscribe != nil:
fmt.Println(cmd.Id, protocol.FrameTypeSubscribe, cmd.Subscribe.Channel)
}
}
if err != nil {
if !errors.Is(err, io.EOF) {
fmt.Println("decode error:", err)
}
break
}
}
}
Output: 1 connect go 2 subscribe news
type CommandEncoder ¶
CommandEncoder encodes Command to bytes. It's the client-side counterpart of CommandDecoder.
type Connect ¶ added in v0.4.0
type Connect struct {
Client string `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
Data Raw `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
Subs map[string]*SubscribeResult `` /* 135-byte string literal not displayed */
Expires bool `protobuf:"varint,5,opt,name=expires,proto3" json:"expires,omitempty"`
Ttl uint32 `protobuf:"varint,6,opt,name=ttl,proto3" json:"ttl,omitempty"`
Ping uint32 `protobuf:"varint,7,opt,name=ping,proto3" json:"ping,omitempty"`
Pong bool `protobuf:"varint,8,opt,name=pong,proto3" json:"pong,omitempty"`
Session string `protobuf:"bytes,9,opt,name=session,proto3" json:"session,omitempty"`
Node string `protobuf:"bytes,10,opt,name=node,proto3" json:"node,omitempty"`
Time int64 `protobuf:"varint,11,opt,name=time,proto3" json:"time,omitempty"` // Server time as Unix timestamp in milliseconds (not sent by default).
// contains filtered or unexported fields
}
func (*Connect) Descriptor
deprecated
added in
v0.4.0
func (*Connect) GetExpires ¶ added in v0.6.0
func (*Connect) GetSession ¶ added in v0.8.4
func (*Connect) GetSubs ¶ added in v0.4.0
func (x *Connect) GetSubs() map[string]*SubscribeResult
func (*Connect) GetVersion ¶ added in v0.4.0
func (Connect) MarshalEasyJSON ¶ added in v0.6.0
func (v Connect) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Connect) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Connect) MarshalToVT ¶ added in v0.7.0
func (*Connect) ProtoMessage ¶ added in v0.4.0
func (*Connect) ProtoMessage()
func (*Connect) ProtoReflect ¶ added in v0.7.0
func (x *Connect) ProtoReflect() protoreflect.Message
func (*Connect) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Connect) UnmarshalVT ¶ added in v0.7.0
type ConnectRequest ¶
type ConnectRequest struct {
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
Data Raw `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Subs map[string]*SubscribeRequest `` /* 135-byte string literal not displayed */
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
Headers map[string]string `` /* 141-byte string literal not displayed */
// Connection level features this client supports, as a bitmask. The server
// replies with the subset it enabled in ConnectResult.flag.
Flag int64 `protobuf:"varint,7,opt,name=flag,proto3" json:"flag,omitempty"`
// Application context this connection belongs to - which view, screen or
// client kind it is. Connections sharing a profile see traffic of a similar
// shape.
//
// Untrusted: the server may override it, and features built on it must treat
// it as a hint rather than an assertion.
Profile string `protobuf:"bytes,9,opt,name=profile,proto3" json:"profile,omitempty"`
// Id of the compression dictionary this client already holds, so the server
// can name it instead of sending it again.
//
// The server answers with a Dictionary carrying only an id when it recognises
// this one, and with the full content otherwise - so an unknown id is a cache
// miss rather than an error.
//
// An id is a hash of the dictionary content, so this id and the server's copy
// are byte identical by construction: a dictionary that changes gets a new id
// automatically.
//
// Deliberately one, not a list. A client caches the last dictionary it was
// given, which is the one it needs when reconnecting to the same profile. The
// cost is one extra transfer per hop during a rolling deploy where nodes
// disagree, which is bounded and small.
Dict string `protobuf:"bytes,8,opt,name=dict,proto3" json:"dict,omitempty"`
// contains filtered or unexported fields
}
func (*ConnectRequest) Descriptor
deprecated
func (*ConnectRequest) Descriptor() ([]byte, []int)
Deprecated: Use ConnectRequest.ProtoReflect.Descriptor instead.
func (*ConnectRequest) GetData ¶ added in v0.7.0
func (x *ConnectRequest) GetData() []byte
func (*ConnectRequest) GetDict ¶ added in v0.21.0
func (x *ConnectRequest) GetDict() string
func (*ConnectRequest) GetFlag ¶ added in v0.17.0
func (x *ConnectRequest) GetFlag() int64
func (*ConnectRequest) GetHeaders ¶ added in v0.14.0
func (x *ConnectRequest) GetHeaders() map[string]string
func (*ConnectRequest) GetName ¶ added in v0.3.4
func (x *ConnectRequest) GetName() string
func (*ConnectRequest) GetProfile ¶ added in v0.21.0
func (x *ConnectRequest) GetProfile() string
func (*ConnectRequest) GetSubs ¶
func (x *ConnectRequest) GetSubs() map[string]*SubscribeRequest
func (*ConnectRequest) GetToken ¶
func (x *ConnectRequest) GetToken() string
func (*ConnectRequest) GetVersion ¶ added in v0.3.4
func (x *ConnectRequest) GetVersion() string
func (ConnectRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v ConnectRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*ConnectRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *ConnectRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*ConnectRequest) MarshalToVT ¶ added in v0.7.0
func (m *ConnectRequest) MarshalToVT(dAtA []byte) (int, error)
func (*ConnectRequest) MarshalVT ¶ added in v0.7.0
func (m *ConnectRequest) MarshalVT() (dAtA []byte, err error)
func (*ConnectRequest) ProtoMessage ¶
func (*ConnectRequest) ProtoMessage()
func (*ConnectRequest) ProtoReflect ¶ added in v0.7.0
func (x *ConnectRequest) ProtoReflect() protoreflect.Message
func (*ConnectRequest) Reset ¶
func (x *ConnectRequest) Reset()
func (*ConnectRequest) SizeVT ¶ added in v0.7.0
func (m *ConnectRequest) SizeVT() (n int)
func (*ConnectRequest) String ¶
func (x *ConnectRequest) String() string
func (*ConnectRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *ConnectRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*ConnectRequest) UnmarshalVT ¶ added in v0.7.0
func (m *ConnectRequest) UnmarshalVT(dAtA []byte) error
type ConnectResult ¶
type ConnectResult struct {
Client string `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
Expires bool `protobuf:"varint,3,opt,name=expires,proto3" json:"expires,omitempty"`
Ttl uint32 `protobuf:"varint,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
Data Raw `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
Subs map[string]*SubscribeResult `` /* 135-byte string literal not displayed */
Ping uint32 `protobuf:"varint,7,opt,name=ping,proto3" json:"ping,omitempty"`
Pong bool `protobuf:"varint,8,opt,name=pong,proto3" json:"pong,omitempty"`
Session string `protobuf:"bytes,9,opt,name=session,proto3" json:"session,omitempty"`
Node string `protobuf:"bytes,10,opt,name=node,proto3" json:"node,omitempty"`
Time int64 `protobuf:"varint,11,opt,name=time,proto3" json:"time,omitempty"` // Server time as Unix timestamp in milliseconds (not sent by default).
// Connection level features the server actually enabled, using the same bits
// as ConnectRequest.flag. A client can not assume a feature it advertised was
// accepted - the server may have it disabled, or may decline per connection -
// so this is how it finds out.
Flag int64 `protobuf:"varint,12,opt,name=flag,proto3" json:"flag,omitempty"`
// Compression dictionary for this connection, when the server enabled
// dictionary compression.
//
// It travels in the connect reply rather than a push so there is no ordering
// rule to get wrong: this frame is raw, and every frame after it is
// compressed. It carries only an id when the client advertised that same id in
// ConnectRequest.dict, since the client already holds the bytes.
Dict *Dictionary `protobuf:"bytes,13,opt,name=dict,proto3" json:"dict,omitempty"`
// contains filtered or unexported fields
}
func (*ConnectResult) Descriptor
deprecated
func (*ConnectResult) Descriptor() ([]byte, []int)
Deprecated: Use ConnectResult.ProtoReflect.Descriptor instead.
func (*ConnectResult) GetClient ¶
func (x *ConnectResult) GetClient() string
func (*ConnectResult) GetData ¶ added in v0.7.0
func (x *ConnectResult) GetData() []byte
func (*ConnectResult) GetDict ¶ added in v0.21.0
func (x *ConnectResult) GetDict() *Dictionary
func (*ConnectResult) GetExpires ¶
func (x *ConnectResult) GetExpires() bool
func (*ConnectResult) GetFlag ¶ added in v0.21.0
func (x *ConnectResult) GetFlag() int64
func (*ConnectResult) GetNode ¶ added in v0.8.5
func (x *ConnectResult) GetNode() string
func (*ConnectResult) GetPing ¶ added in v0.8.2
func (x *ConnectResult) GetPing() uint32
func (*ConnectResult) GetPong ¶ added in v0.8.3
func (x *ConnectResult) GetPong() bool
func (*ConnectResult) GetSession ¶ added in v0.8.4
func (x *ConnectResult) GetSession() string
func (*ConnectResult) GetSubs ¶
func (x *ConnectResult) GetSubs() map[string]*SubscribeResult
func (*ConnectResult) GetTime ¶ added in v0.13.0
func (x *ConnectResult) GetTime() int64
func (*ConnectResult) GetTtl ¶ added in v0.4.1
func (x *ConnectResult) GetTtl() uint32
func (*ConnectResult) GetVersion ¶
func (x *ConnectResult) GetVersion() string
func (ConnectResult) MarshalEasyJSON ¶ added in v0.6.0
func (v ConnectResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*ConnectResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *ConnectResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*ConnectResult) MarshalToVT ¶ added in v0.7.0
func (m *ConnectResult) MarshalToVT(dAtA []byte) (int, error)
func (*ConnectResult) MarshalVT ¶ added in v0.7.0
func (m *ConnectResult) MarshalVT() (dAtA []byte, err error)
func (*ConnectResult) ProtoMessage ¶
func (*ConnectResult) ProtoMessage()
func (*ConnectResult) ProtoReflect ¶ added in v0.7.0
func (x *ConnectResult) ProtoReflect() protoreflect.Message
func (*ConnectResult) Reset ¶
func (x *ConnectResult) Reset()
func (*ConnectResult) SizeVT ¶ added in v0.7.0
func (m *ConnectResult) SizeVT() (n int)
func (*ConnectResult) String ¶
func (x *ConnectResult) String() string
func (*ConnectResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *ConnectResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*ConnectResult) UnmarshalVT ¶ added in v0.7.0
func (m *ConnectResult) UnmarshalVT(dAtA []byte) error
type DataEncoder ¶ added in v0.4.0
type DataEncoder interface {
// Reset prepares the encoder to build a new frame, dropping everything
// encoded so far.
Reset()
// Encode appends an already encoded message to the frame.
Encode([]byte) error
// Finish returns a copy of the frame built so far.
Finish() []byte
// FinishNoCopy returns the frame built so far without copying it. The
// returned slice is only valid until the next Reset or Encode call, so use
// it only if the data is written to a connection before that happens.
FinishNoCopy() []byte
}
DataEncoder concatenates already encoded messages into a single transport frame, applying the framing of a concrete protocol Type: messages are separated by a `\n` delimiter in JSON and prefixed with their length in Protobuf.
A DataEncoder is not safe for concurrent use. Use GetDataEncoder and PutDataEncoder to take one from a pool and return it back when done.
func GetDataEncoder ¶ added in v0.4.0
func GetDataEncoder(protoType Type) DataEncoder
GetDataEncoder returns a DataEncoder for the given protocol type, taking it from a pool and resetting it. Return it with PutDataEncoder once the frame is built. Any type other than TypeJSON is treated as TypeProtobuf.
type DeflateFrameCodec ¶ added in v0.21.0
type DeflateFrameCodec struct {
// contains filtered or unexported fields
}
DeflateFrameCodec compresses and decompresses whole transport frames with DEFLATE against a shared preset dictionary, applying the frame marker convention above.
It lives in this package because a server and a client have to agree on it byte for byte, and this package is the only thing they both import - putting it anywhere else would let the two sides drift. It is not an abstraction over codecs: it is the one codec the protocol ships with. A second algorithm would be a sibling type emitting the same markers, not an implementation of an interface here, since which codec a connection uses is settled by capability flags at connect rather than by anything on the wire.
One codec is meant to be shared by every connection using the same dictionary, and it is safe for concurrent use. This matters: a DEFLATE writer retains several hundred kilobytes of window and hash state, so giving each connection its own would dwarf the rest of a connection's footprint. Pooling them behind a shared codec keeps that cost proportional to the number of concurrent writes instead of the number of connections.
func NewDeflateFrameCodec ¶ added in v0.21.0
func NewDeflateFrameCodec(id string, dict []byte, level int) *DeflateFrameCodec
NewDeflateFrameCodec builds a codec for the given dictionary. id identifies the dictionary content so both sides can tell which one a frame was built with.
level is a DEFLATE compression level from MinDictionaryCompressionLevel to 9. It affects only how hard this side's encoder works to shrink a frame, and never needs to match what the other side of a connection uses: DEFLATE's format is self-describing per block, so a decoder never depends on which level produced its input, only on sharing the same dictionary. NewDeflateFrameCodec panics if level is below MinDictionaryCompressionLevel, since that silently disables the dictionary rather than trading ratio for speed.
This package does not recommend one level for every caller, because the right choice depends on traffic and dictionary shapes only the caller sees, and it has already moved once as compress/flate itself changed. Measured on go1.26.5 and go1.27.0, frames drawn from the vocabulary a dictionary is built from, against a few KB dictionary:
- go1.26: levels 2-9 are byte-identical in output and cost, because a per-frame compression there is dominated by loading the dictionary on Reset, not by encoding the frame - the level only governs the smaller half of the work.
- go1.27 rewrote compress/flate's levels 2-6 into new encoders optimised for large-payload throughput (golang/go#75532), at the cost of ratio for a small payload against a large preset dictionary - exactly this codec's shape. A 40 byte frame against a 2.4KB dictionary compresses to 47 bytes at level 6 on go1.27 (worse than sending it raw) versus 34 bytes on go1.26. Levels 7-9 kept the old algorithm, so they are unaffected: 31 bytes on either Go version, at a CPU cost within a few percent of what level 6 cost on go1.26 - i.e. level 7 on go1.27 tracks the historical level-6 cost/ratio, where level 6 on go1.27 does not.
- Levels 7, 8 and 9 produce byte-identical output for this shape, so 9 buys nothing over 7 and only costs more CPU for a caller with this shape of traffic.
func (*DeflateFrameCodec) Compress ¶ added in v0.21.0
func (c *DeflateFrameCodec) Compress(dst, src []byte) []byte
Compress encodes src into a framed payload appended to dst.
It falls back to FrameCodecRaw whenever compression does not actually shrink the frame, so an incompressible payload - already compressed data, encrypted blobs - costs one marker byte instead of growing.
func (*DeflateFrameCodec) Decompress ¶ added in v0.21.0
func (c *DeflateFrameCodec) Decompress(dst, frame []byte, maxSize int) ([]byte, error)
Decompress decodes a framed payload produced by Compress, appending the result to dst. maxSize bounds the decompressed output, pass 0 to leave it unbounded.
func (*DeflateFrameCodec) Dict ¶ added in v0.21.0
func (c *DeflateFrameCodec) Dict() []byte
Dict returns the raw dictionary bytes. The result must not be modified.
func (*DeflateFrameCodec) ID ¶ added in v0.21.0
func (c *DeflateFrameCodec) ID() string
ID returns the dictionary identifier this codec was built for.
type Dictionary ¶ added in v0.21.0
type Dictionary struct {
// Identifier of dictionary content, client may cache by it.
//
// It is SHA-256 of the content, first 12 bytes, base64url without padding.
//
// The derivation is fixed rather than conventional, because a client that
// keeps a dictionary between connections hashes the bytes it stored against
// this id before reusing them. Storage shared with anything else on the
// client's origin can be rewritten, and DEFLATE back references resolve into
// the dictionary - so substituted content does not corrupt a frame, it makes
// a genuine server frame decode into whatever the substituter chose. Only an
// id the server issued detects that: a checksum the client stored alongside
// would simply be rewritten with the bytes.
//
// A server identifying dictionaries some other way is not rejected. It has
// every caching client quietly stop caching instead, which is worse.
//
// It also means one id can never name two different dictionaries, so a client
// reconnecting to a node that built its own gets an exact match or a miss,
// never the wrong bytes.
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// The dictionary content, always DEFLATE compressed. Inflate it with no preset
// dictionary before use.
//
// It is compressed because it arrives in the connect reply, which cannot be
// compressed at the frame level - nothing is installed yet to compress it
// against. Compressing the content instead is worth about 8x on JSON, and a
// dictionary is sampled message text so it always compresses.
//
// data is set on Protobuf connections, where bytes travel directly. data_b64
// is set on JSON connections, where a bytes field carries raw JSON and cannot
// hold binary. Exactly one of them is set, and neither when the server is
// naming a dictionary the client already holds.
Data Raw `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
DataB64 string `protobuf:"bytes,3,opt,name=data_b64,json=dataB64,proto3" json:"data_b64,omitempty"`
// contains filtered or unexported fields
}
Dictionary is a shared compression dictionary the server asks the client to use for subsequent frames on this connection. It arrives in the connect reply, and every frame after that reply starts with a one byte codec marker saying whether it was compressed.
func (*Dictionary) Descriptor
deprecated
added in
v0.21.0
func (*Dictionary) Descriptor() ([]byte, []int)
Deprecated: Use Dictionary.ProtoReflect.Descriptor instead.
func (*Dictionary) GetData ¶ added in v0.21.0
func (x *Dictionary) GetData() []byte
func (*Dictionary) GetDataB64 ¶ added in v0.21.0
func (x *Dictionary) GetDataB64() string
func (*Dictionary) GetId ¶ added in v0.21.0
func (x *Dictionary) GetId() string
func (Dictionary) MarshalEasyJSON ¶ added in v0.21.0
func (v Dictionary) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Dictionary) MarshalToSizedBufferVT ¶ added in v0.21.0
func (m *Dictionary) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Dictionary) MarshalToVT ¶ added in v0.21.0
func (m *Dictionary) MarshalToVT(dAtA []byte) (int, error)
func (*Dictionary) MarshalVT ¶ added in v0.21.0
func (m *Dictionary) MarshalVT() (dAtA []byte, err error)
func (*Dictionary) ProtoMessage ¶ added in v0.21.0
func (*Dictionary) ProtoMessage()
func (*Dictionary) ProtoReflect ¶ added in v0.21.0
func (x *Dictionary) ProtoReflect() protoreflect.Message
func (*Dictionary) Reset ¶ added in v0.21.0
func (x *Dictionary) Reset()
func (*Dictionary) SizeVT ¶ added in v0.21.0
func (m *Dictionary) SizeVT() (n int)
func (*Dictionary) String ¶ added in v0.21.0
func (x *Dictionary) String() string
func (*Dictionary) UnmarshalEasyJSON ¶ added in v0.21.0
func (v *Dictionary) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Dictionary) UnmarshalVT ¶ added in v0.21.0
func (m *Dictionary) UnmarshalVT(dAtA []byte) error
type Disconnect ¶ added in v0.4.0
type Disconnect struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
Reconnect bool `protobuf:"varint,3,opt,name=reconnect,proto3" json:"reconnect,omitempty"`
// contains filtered or unexported fields
}
func (*Disconnect) Descriptor
deprecated
added in
v0.4.0
func (*Disconnect) Descriptor() ([]byte, []int)
Deprecated: Use Disconnect.ProtoReflect.Descriptor instead.
func (*Disconnect) GetCode ¶ added in v0.4.0
func (x *Disconnect) GetCode() uint32
func (*Disconnect) GetReason ¶ added in v0.4.0
func (x *Disconnect) GetReason() string
func (*Disconnect) GetReconnect ¶ added in v0.4.0
func (x *Disconnect) GetReconnect() bool
func (Disconnect) MarshalEasyJSON ¶ added in v0.6.0
func (v Disconnect) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Disconnect) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *Disconnect) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Disconnect) MarshalToVT ¶ added in v0.7.0
func (m *Disconnect) MarshalToVT(dAtA []byte) (int, error)
func (*Disconnect) MarshalVT ¶ added in v0.7.0
func (m *Disconnect) MarshalVT() (dAtA []byte, err error)
func (*Disconnect) ProtoMessage ¶ added in v0.4.0
func (*Disconnect) ProtoMessage()
func (*Disconnect) ProtoReflect ¶ added in v0.7.0
func (x *Disconnect) ProtoReflect() protoreflect.Message
func (*Disconnect) Reset ¶ added in v0.4.0
func (x *Disconnect) Reset()
func (*Disconnect) SizeVT ¶ added in v0.7.0
func (m *Disconnect) SizeVT() (n int)
func (*Disconnect) String ¶ added in v0.4.0
func (x *Disconnect) String() string
func (*Disconnect) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *Disconnect) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Disconnect) UnmarshalVT ¶ added in v0.7.0
func (m *Disconnect) UnmarshalVT(dAtA []byte) error
type EmulationRequest ¶ added in v0.8.5
type EmulationRequest struct {
Node string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
Session string `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"`
Data Raw `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
func (*EmulationRequest) Descriptor
deprecated
added in
v0.8.5
func (*EmulationRequest) Descriptor() ([]byte, []int)
Deprecated: Use EmulationRequest.ProtoReflect.Descriptor instead.
func (*EmulationRequest) GetData ¶ added in v0.8.5
func (x *EmulationRequest) GetData() []byte
func (*EmulationRequest) GetNode ¶ added in v0.8.5
func (x *EmulationRequest) GetNode() string
func (*EmulationRequest) GetSession ¶ added in v0.8.5
func (x *EmulationRequest) GetSession() string
func (EmulationRequest) MarshalEasyJSON ¶ added in v0.8.5
func (v EmulationRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*EmulationRequest) MarshalToSizedBufferVT ¶ added in v0.8.5
func (m *EmulationRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*EmulationRequest) MarshalToVT ¶ added in v0.8.5
func (m *EmulationRequest) MarshalToVT(dAtA []byte) (int, error)
func (*EmulationRequest) MarshalVT ¶ added in v0.8.5
func (m *EmulationRequest) MarshalVT() (dAtA []byte, err error)
func (*EmulationRequest) ProtoMessage ¶ added in v0.8.5
func (*EmulationRequest) ProtoMessage()
func (*EmulationRequest) ProtoReflect ¶ added in v0.8.5
func (x *EmulationRequest) ProtoReflect() protoreflect.Message
func (*EmulationRequest) Reset ¶ added in v0.8.5
func (x *EmulationRequest) Reset()
func (*EmulationRequest) SizeVT ¶ added in v0.8.5
func (m *EmulationRequest) SizeVT() (n int)
func (*EmulationRequest) String ¶ added in v0.8.5
func (x *EmulationRequest) String() string
func (*EmulationRequest) UnmarshalEasyJSON ¶ added in v0.8.5
func (v *EmulationRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*EmulationRequest) UnmarshalVT ¶ added in v0.8.5
func (m *EmulationRequest) UnmarshalVT(dAtA []byte) error
type Error ¶
type Error struct {
Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"`
Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
Temporary bool `protobuf:"varint,3,opt,name=temporary,proto3" json:"temporary,omitempty"`
// contains filtered or unexported fields
}
func (*Error) Descriptor
deprecated
func (*Error) GetMessage ¶
func (*Error) GetTemporary ¶ added in v0.8.5
func (Error) MarshalEasyJSON ¶ added in v0.6.0
func (v Error) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Error) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Error) ProtoMessage ¶
func (*Error) ProtoMessage()
func (*Error) ProtoReflect ¶ added in v0.7.0
func (x *Error) ProtoReflect() protoreflect.Message
func (*Error) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Error) UnmarshalVT ¶ added in v0.7.0
type FilterNode ¶ added in v0.17.0
type FilterNode struct {
// Operation type for this node:
// - "" (empty string) → leaf node (comparison)
// - "and" → logical AND of child nodes
// - "or" → logical OR of child nodes
// - "not" → logical NOT of a single child node
Op string `protobuf:"bytes,1,opt,name=op,proto3" json:"op,omitempty"`
// Key for comparison (only valid for leaf nodes).
Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
// Comparison operator for leaf nodes.
// Only meaningful if op == "".
// Supported values:
//
// "eq" → equal
// "neq" → not equal
// "in" → value is in vals
// "nin" → value is not in vals
// "ex" → key exists in tags
// "nex" → key does not exist
// "sw" → string starts with val
// "ew" → string ends with val
// "ct" → string contains val
// "lt" → numeric less than val
// "lte" → numeric less than or equal val
// "gt" → numeric greater than val
// "gte" → numeric greater than or equal val
Cmp string `protobuf:"bytes,3,opt,name=cmp,proto3" json:"cmp,omitempty"`
// Single value used in most comparisons (e.g. "eq").
Val string `protobuf:"bytes,4,opt,name=val,proto3" json:"val,omitempty"`
// Multiple values used for set comparisons ("in", "nin").
Vals []string `protobuf:"bytes,5,rep,name=vals,proto3" json:"vals,omitempty"`
// Child nodes.
// Used for logical operations: "and", "or", "not".
Nodes []*FilterNode `protobuf:"bytes,6,rep,name=nodes,proto3" json:"nodes,omitempty"`
// contains filtered or unexported fields
}
func (*FilterNode) Descriptor
deprecated
added in
v0.17.0
func (*FilterNode) Descriptor() ([]byte, []int)
Deprecated: Use FilterNode.ProtoReflect.Descriptor instead.
func (*FilterNode) GetCmp ¶ added in v0.17.0
func (x *FilterNode) GetCmp() string
func (*FilterNode) GetKey ¶ added in v0.17.0
func (x *FilterNode) GetKey() string
func (*FilterNode) GetNodes ¶ added in v0.17.0
func (x *FilterNode) GetNodes() []*FilterNode
func (*FilterNode) GetOp ¶ added in v0.17.0
func (x *FilterNode) GetOp() string
func (*FilterNode) GetVal ¶ added in v0.17.0
func (x *FilterNode) GetVal() string
func (*FilterNode) GetVals ¶ added in v0.17.0
func (x *FilterNode) GetVals() []string
func (FilterNode) MarshalEasyJSON ¶ added in v0.17.0
func (v FilterNode) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*FilterNode) MarshalToSizedBufferVT ¶ added in v0.17.0
func (m *FilterNode) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*FilterNode) MarshalToVT ¶ added in v0.17.0
func (m *FilterNode) MarshalToVT(dAtA []byte) (int, error)
func (*FilterNode) MarshalVT ¶ added in v0.17.0
func (m *FilterNode) MarshalVT() (dAtA []byte, err error)
func (*FilterNode) ProtoMessage ¶ added in v0.17.0
func (*FilterNode) ProtoMessage()
func (*FilterNode) ProtoReflect ¶ added in v0.17.0
func (x *FilterNode) ProtoReflect() protoreflect.Message
func (*FilterNode) Reset ¶ added in v0.17.0
func (x *FilterNode) Reset()
func (*FilterNode) SizeVT ¶ added in v0.17.0
func (m *FilterNode) SizeVT() (n int)
func (*FilterNode) String ¶ added in v0.17.0
func (x *FilterNode) String() string
func (*FilterNode) UnmarshalEasyJSON ¶ added in v0.17.0
func (v *FilterNode) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*FilterNode) UnmarshalVT ¶ added in v0.17.0
func (m *FilterNode) UnmarshalVT(dAtA []byte) error
type FrameType ¶ added in v0.11.0
type FrameType uint8
FrameType describes the type of a protocol frame. It's not a part of the wire format – it's used for observability, so that a server may count and measure frames it sends and receives per type.
const ( FrameTypeServerPing FrameType = iota + 1 FrameTypeClientPong FrameTypePushConnect FrameTypePushSubscribe FrameTypePushPublication FrameTypePushJoin FrameTypePushLeave FrameTypePushUnsubscribe FrameTypePushMessage FrameTypePushRefresh FrameTypePushDisconnect FrameTypeConnect FrameTypeSubscribe FrameTypePublish FrameTypeUnsubscribe FrameTypeRPC FrameTypePresence FrameTypePresenceStats FrameTypeHistory FrameTypeRefresh FrameTypeSubRefresh FrameTypeSend )
Frame types of the protocol: a ping/pong pair, asynchronous server-to-client pushes and client-to-server commands.
type HistoryRequest ¶
type HistoryRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
Limit int32 `protobuf:"varint,7,opt,name=limit,proto3" json:"limit,omitempty"`
Since *StreamPosition `protobuf:"bytes,8,opt,name=since,proto3" json:"since,omitempty"`
Reverse bool `protobuf:"varint,9,opt,name=reverse,proto3" json:"reverse,omitempty"`
// contains filtered or unexported fields
}
func (*HistoryRequest) Descriptor
deprecated
func (*HistoryRequest) Descriptor() ([]byte, []int)
Deprecated: Use HistoryRequest.ProtoReflect.Descriptor instead.
func (*HistoryRequest) GetChannel ¶
func (x *HistoryRequest) GetChannel() string
func (*HistoryRequest) GetLimit ¶ added in v0.3.5
func (x *HistoryRequest) GetLimit() int32
func (*HistoryRequest) GetReverse ¶ added in v0.7.1
func (x *HistoryRequest) GetReverse() bool
func (*HistoryRequest) GetSince ¶ added in v0.6.0
func (x *HistoryRequest) GetSince() *StreamPosition
func (HistoryRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v HistoryRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*HistoryRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *HistoryRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*HistoryRequest) MarshalToVT ¶ added in v0.7.0
func (m *HistoryRequest) MarshalToVT(dAtA []byte) (int, error)
func (*HistoryRequest) MarshalVT ¶ added in v0.7.0
func (m *HistoryRequest) MarshalVT() (dAtA []byte, err error)
func (*HistoryRequest) ProtoMessage ¶
func (*HistoryRequest) ProtoMessage()
func (*HistoryRequest) ProtoReflect ¶ added in v0.7.0
func (x *HistoryRequest) ProtoReflect() protoreflect.Message
func (*HistoryRequest) Reset ¶
func (x *HistoryRequest) Reset()
func (*HistoryRequest) SizeVT ¶ added in v0.7.0
func (m *HistoryRequest) SizeVT() (n int)
func (*HistoryRequest) String ¶
func (x *HistoryRequest) String() string
func (*HistoryRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *HistoryRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*HistoryRequest) UnmarshalVT ¶ added in v0.7.0
func (m *HistoryRequest) UnmarshalVT(dAtA []byte) error
type HistoryResult ¶
type HistoryResult struct {
Publications []*Publication `protobuf:"bytes,1,rep,name=publications,proto3" json:"publications"`
Epoch string `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch"`
Offset uint64 `protobuf:"varint,3,opt,name=offset,proto3" json:"offset"`
// contains filtered or unexported fields
}
func (*HistoryResult) Descriptor
deprecated
func (*HistoryResult) Descriptor() ([]byte, []int)
Deprecated: Use HistoryResult.ProtoReflect.Descriptor instead.
func (*HistoryResult) GetEpoch ¶ added in v0.3.5
func (x *HistoryResult) GetEpoch() string
func (*HistoryResult) GetOffset ¶ added in v0.3.5
func (x *HistoryResult) GetOffset() uint64
func (*HistoryResult) GetPublications ¶
func (x *HistoryResult) GetPublications() []*Publication
func (HistoryResult) MarshalEasyJSON ¶ added in v0.6.0
func (v HistoryResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*HistoryResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *HistoryResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*HistoryResult) MarshalToVT ¶ added in v0.7.0
func (m *HistoryResult) MarshalToVT(dAtA []byte) (int, error)
func (*HistoryResult) MarshalVT ¶ added in v0.7.0
func (m *HistoryResult) MarshalVT() (dAtA []byte, err error)
func (*HistoryResult) ProtoMessage ¶
func (*HistoryResult) ProtoMessage()
func (*HistoryResult) ProtoReflect ¶ added in v0.7.0
func (x *HistoryResult) ProtoReflect() protoreflect.Message
func (*HistoryResult) Reset ¶
func (x *HistoryResult) Reset()
func (*HistoryResult) SizeVT ¶ added in v0.7.0
func (m *HistoryResult) SizeVT() (n int)
func (*HistoryResult) String ¶
func (x *HistoryResult) String() string
func (*HistoryResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *HistoryResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*HistoryResult) UnmarshalVT ¶ added in v0.7.0
func (m *HistoryResult) UnmarshalVT(dAtA []byte) error
type JSONCommandDecoder ¶
type JSONCommandDecoder struct {
// contains filtered or unexported fields
}
JSONCommandDecoder is a CommandDecoder for commands separated by a `\n` delimiter.
Decoding is zero-copy: string fields of the returned Command point into the frame passed to NewJSONCommandDecoder or Reset rather than into copies of it. The frame must therefore stay unmodified for as long as the decoded commands are used – do not hand decoded commands to another goroutine while reusing the read buffer they came from. Raw payload fields are copied and are not affected. The Protobuf decoders copy everything, so this applies to JSON only.
func NewJSONCommandDecoder ¶
func NewJSONCommandDecoder(data []byte) *JSONCommandDecoder
NewJSONCommandDecoder creates a new JSONCommandDecoder for the given frame.
func (*JSONCommandDecoder) Decode ¶
func (d *JSONCommandDecoder) Decode() (*Command, error)
Decode returns the next Command in the frame. The last Command is returned together with io.EOF, see the CommandDecoder interface.
func (*JSONCommandDecoder) Reset ¶
func (d *JSONCommandDecoder) Reset(data []byte) error
Reset makes the decoder ready to decode commands from the given frame.
type JSONCommandEncoder ¶
type JSONCommandEncoder struct {
}
JSONCommandEncoder is a CommandEncoder which encodes to JSON.
func NewJSONCommandEncoder ¶
func NewJSONCommandEncoder() *JSONCommandEncoder
NewJSONCommandEncoder creates a new JSONCommandEncoder. It's safe to use the returned encoder concurrently.
type JSONDataEncoder ¶ added in v0.4.0
type JSONDataEncoder struct {
// contains filtered or unexported fields
}
JSONDataEncoder is a DataEncoder which separates messages by a `\n` delimiter.
func NewJSONDataEncoder ¶ added in v0.4.0
func NewJSONDataEncoder() *JSONDataEncoder
NewJSONDataEncoder creates a new JSONDataEncoder.
func (*JSONDataEncoder) Encode ¶ added in v0.4.0
func (e *JSONDataEncoder) Encode(data []byte) error
Encode appends an already encoded message to the frame, separating it from the previous one with a `\n` delimiter.
func (*JSONDataEncoder) Finish ¶ added in v0.4.0
func (e *JSONDataEncoder) Finish() []byte
Finish returns a copy of the frame built so far.
func (*JSONDataEncoder) FinishNoCopy ¶ added in v0.18.2
func (e *JSONDataEncoder) FinishNoCopy() []byte
FinishNoCopy returns the frame built so far without copying it, see the DataEncoder interface for the lifetime of the returned slice.
func (*JSONDataEncoder) Reset ¶ added in v0.4.0
func (e *JSONDataEncoder) Reset()
Reset prepares the encoder to build a new frame.
type JSONPushEncoder ¶
type JSONPushEncoder struct {
}
JSONPushEncoder is a PushEncoder which encodes to JSON.
func NewJSONPushEncoder ¶
func NewJSONPushEncoder() *JSONPushEncoder
NewJSONPushEncoder creates a new JSONPushEncoder. It's safe to use the returned encoder concurrently, see also DefaultJsonPushEncoder.
func (*JSONPushEncoder) Encode ¶
func (e *JSONPushEncoder) Encode(message *Push) ([]byte, error)
Encode Push to bytes.
func (*JSONPushEncoder) EncodeConnect ¶ added in v0.4.0
func (e *JSONPushEncoder) EncodeConnect(message *Connect, reuse ...[]byte) ([]byte, error)
EncodeConnect to bytes.
func (*JSONPushEncoder) EncodeDisconnect ¶ added in v0.4.0
func (e *JSONPushEncoder) EncodeDisconnect(message *Disconnect, reuse ...[]byte) ([]byte, error)
EncodeDisconnect to bytes.
func (*JSONPushEncoder) EncodeJoin ¶
func (e *JSONPushEncoder) EncodeJoin(message *Join, reuse ...[]byte) ([]byte, error)
EncodeJoin to bytes.
func (*JSONPushEncoder) EncodeLeave ¶
func (e *JSONPushEncoder) EncodeLeave(message *Leave, reuse ...[]byte) ([]byte, error)
EncodeLeave to bytes.
func (*JSONPushEncoder) EncodeMessage ¶
func (e *JSONPushEncoder) EncodeMessage(message *Message, reuse ...[]byte) ([]byte, error)
EncodeMessage to bytes.
func (*JSONPushEncoder) EncodePublication ¶
func (e *JSONPushEncoder) EncodePublication(message *Publication, reuse ...[]byte) ([]byte, error)
EncodePublication to bytes.
func (*JSONPushEncoder) EncodeRefresh ¶ added in v0.6.0
func (e *JSONPushEncoder) EncodeRefresh(message *Refresh, reuse ...[]byte) ([]byte, error)
EncodeRefresh to bytes.
func (*JSONPushEncoder) EncodeSubscribe ¶ added in v0.4.0
func (e *JSONPushEncoder) EncodeSubscribe(message *Subscribe, reuse ...[]byte) ([]byte, error)
EncodeSubscribe to bytes.
func (*JSONPushEncoder) EncodeUnsubscribe ¶ added in v0.4.0
func (e *JSONPushEncoder) EncodeUnsubscribe(message *Unsubscribe, reuse ...[]byte) ([]byte, error)
EncodeUnsubscribe to bytes.
type JSONReplyDecoder ¶
type JSONReplyDecoder struct {
// contains filtered or unexported fields
}
JSONReplyDecoder is a ReplyDecoder which reads a stream of JSON replies, such as the `\n` separated frame produced by JSONDataEncoder.
func NewJSONReplyDecoder ¶
func NewJSONReplyDecoder(data []byte) *JSONReplyDecoder
NewJSONReplyDecoder creates a new JSONReplyDecoder for the given frame.
func (*JSONReplyDecoder) Decode ¶
func (d *JSONReplyDecoder) Decode() (*Reply, error)
Decode returns the next Reply in the frame, or io.EOF if there are no replies left.
func (*JSONReplyDecoder) Reset ¶
func (d *JSONReplyDecoder) Reset(data []byte) error
Reset makes the decoder ready to decode replies from the given frame.
type JSONReplyEncoder ¶
type JSONReplyEncoder struct{}
JSONReplyEncoder is a ReplyEncoder which encodes to JSON.
func NewJSONReplyEncoder ¶
func NewJSONReplyEncoder() *JSONReplyEncoder
NewJSONReplyEncoder creates a new JSONReplyEncoder. It's safe to use the returned encoder concurrently, see also DefaultJsonReplyEncoder.
type JSONResultEncoder ¶
type JSONResultEncoder struct{}
JSONResultEncoder is a ResultEncoder which encodes to JSON.
func NewJSONResultEncoder ¶
func NewJSONResultEncoder() *JSONResultEncoder
NewJSONResultEncoder creates a new JSONResultEncoder. It's safe to use the returned encoder concurrently.
func (*JSONResultEncoder) EncodeConnectResult ¶
func (e *JSONResultEncoder) EncodeConnectResult(res *ConnectResult) ([]byte, error)
EncodeConnectResult encodes ConnectResult to bytes.
func (*JSONResultEncoder) EncodeHistoryResult ¶
func (e *JSONResultEncoder) EncodeHistoryResult(res *HistoryResult) ([]byte, error)
EncodeHistoryResult encodes HistoryResult to bytes.
func (*JSONResultEncoder) EncodePingResult ¶
func (e *JSONResultEncoder) EncodePingResult(res *PingResult) ([]byte, error)
EncodePingResult encodes PingResult to bytes.
func (*JSONResultEncoder) EncodePresenceResult ¶
func (e *JSONResultEncoder) EncodePresenceResult(res *PresenceResult) ([]byte, error)
EncodePresenceResult encodes PresenceResult to bytes.
func (*JSONResultEncoder) EncodePresenceStatsResult ¶
func (e *JSONResultEncoder) EncodePresenceStatsResult(res *PresenceStatsResult) ([]byte, error)
EncodePresenceStatsResult encodes PresenceStatsResult to bytes.
func (*JSONResultEncoder) EncodePublishResult ¶
func (e *JSONResultEncoder) EncodePublishResult(res *PublishResult) ([]byte, error)
EncodePublishResult encodes PublishResult to bytes.
func (*JSONResultEncoder) EncodeRPCResult ¶
func (e *JSONResultEncoder) EncodeRPCResult(res *RPCResult) ([]byte, error)
EncodeRPCResult encodes RPCResult to bytes.
func (*JSONResultEncoder) EncodeRefreshResult ¶
func (e *JSONResultEncoder) EncodeRefreshResult(res *RefreshResult) ([]byte, error)
EncodeRefreshResult encodes RefreshResult to bytes.
func (*JSONResultEncoder) EncodeSubRefreshResult ¶
func (e *JSONResultEncoder) EncodeSubRefreshResult(res *SubRefreshResult) ([]byte, error)
EncodeSubRefreshResult encodes SubRefreshResult to bytes.
func (*JSONResultEncoder) EncodeSubscribeResult ¶
func (e *JSONResultEncoder) EncodeSubscribeResult(res *SubscribeResult) ([]byte, error)
EncodeSubscribeResult encodes SubscribeResult to bytes.
func (*JSONResultEncoder) EncodeUnsubscribeResult ¶
func (e *JSONResultEncoder) EncodeUnsubscribeResult(res *UnsubscribeResult) ([]byte, error)
EncodeUnsubscribeResult encodes UnsubscribeResult to bytes.
type JSONStreamCommandDecoder ¶ added in v0.8.10
type JSONStreamCommandDecoder struct {
// contains filtered or unexported fields
}
JSONStreamCommandDecoder is a StreamCommandDecoder which reads commands separated by a `\n` delimiter.
func NewJSONStreamCommandDecoder ¶ added in v0.8.10
func NewJSONStreamCommandDecoder(reader io.Reader, messageSizeLimit int64) *JSONStreamCommandDecoder
NewJSONStreamCommandDecoder creates a new JSONStreamCommandDecoder reading from reader. messageSizeLimit must be positive; a zero or negative value panics.
type Join ¶
type Join struct {
Info *ClientInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
// contains filtered or unexported fields
}
Join to channel.
func (*Join) Descriptor
deprecated
func (*Join) GetInfo ¶
func (x *Join) GetInfo() *ClientInfo
func (Join) MarshalEasyJSON ¶ added in v0.6.0
func (v Join) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Join) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Join) ProtoMessage ¶
func (*Join) ProtoMessage()
func (*Join) ProtoReflect ¶ added in v0.7.0
func (x *Join) ProtoReflect() protoreflect.Message
func (*Join) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Join) UnmarshalVT ¶ added in v0.7.0
type KeyedItem ¶ added in v0.19.0
type KeyedItem struct {
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Version uint64 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"`
// contains filtered or unexported fields
}
func (*KeyedItem) Descriptor
deprecated
added in
v0.19.0
func (*KeyedItem) GetVersion ¶ added in v0.19.0
func (KeyedItem) MarshalEasyJSON ¶ added in v0.19.0
func (v KeyedItem) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*KeyedItem) MarshalToSizedBufferVT ¶ added in v0.19.0
func (*KeyedItem) MarshalToVT ¶ added in v0.19.0
func (*KeyedItem) ProtoMessage ¶ added in v0.19.0
func (*KeyedItem) ProtoMessage()
func (*KeyedItem) ProtoReflect ¶ added in v0.19.0
func (x *KeyedItem) ProtoReflect() protoreflect.Message
func (*KeyedItem) UnmarshalEasyJSON ¶ added in v0.19.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*KeyedItem) UnmarshalVT ¶ added in v0.19.0
type Leave ¶
type Leave struct {
Info *ClientInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"`
// contains filtered or unexported fields
}
Leave from channel.
func (*Leave) Descriptor
deprecated
func (*Leave) GetInfo ¶
func (x *Leave) GetInfo() *ClientInfo
func (Leave) MarshalEasyJSON ¶ added in v0.6.0
func (v Leave) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Leave) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Leave) ProtoMessage ¶
func (*Leave) ProtoMessage()
func (*Leave) ProtoReflect ¶ added in v0.7.0
func (x *Leave) ProtoReflect() protoreflect.Message
func (*Leave) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Leave) UnmarshalVT ¶ added in v0.7.0
type Message ¶
type Message struct {
Data Raw `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
Message from client to server. No Reply is sent in response to Message.
func (*Message) Descriptor
deprecated
func (Message) MarshalEasyJSON ¶ added in v0.6.0
func (v Message) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Message) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Message) MarshalToVT ¶ added in v0.7.0
func (*Message) ProtoMessage ¶
func (*Message) ProtoMessage()
func (*Message) ProtoReflect ¶ added in v0.7.0
func (x *Message) ProtoReflect() protoreflect.Message
func (*Message) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Message) UnmarshalVT ¶ added in v0.7.0
type PingRequest ¶
type PingRequest struct {
// contains filtered or unexported fields
}
func (*PingRequest) Descriptor
deprecated
func (*PingRequest) Descriptor() ([]byte, []int)
Deprecated: Use PingRequest.ProtoReflect.Descriptor instead.
func (PingRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v PingRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PingRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PingRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PingRequest) MarshalToVT ¶ added in v0.7.0
func (m *PingRequest) MarshalToVT(dAtA []byte) (int, error)
func (*PingRequest) MarshalVT ¶ added in v0.7.0
func (m *PingRequest) MarshalVT() (dAtA []byte, err error)
func (*PingRequest) ProtoMessage ¶
func (*PingRequest) ProtoMessage()
func (*PingRequest) ProtoReflect ¶ added in v0.7.0
func (x *PingRequest) ProtoReflect() protoreflect.Message
func (*PingRequest) Reset ¶
func (x *PingRequest) Reset()
func (*PingRequest) SizeVT ¶ added in v0.7.0
func (m *PingRequest) SizeVT() (n int)
func (*PingRequest) String ¶
func (x *PingRequest) String() string
func (*PingRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PingRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PingRequest) UnmarshalVT ¶ added in v0.7.0
func (m *PingRequest) UnmarshalVT(dAtA []byte) error
type PingResult ¶
type PingResult struct {
// contains filtered or unexported fields
}
func (*PingResult) Descriptor
deprecated
func (*PingResult) Descriptor() ([]byte, []int)
Deprecated: Use PingResult.ProtoReflect.Descriptor instead.
func (PingResult) MarshalEasyJSON ¶ added in v0.6.0
func (v PingResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PingResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PingResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PingResult) MarshalToVT ¶ added in v0.7.0
func (m *PingResult) MarshalToVT(dAtA []byte) (int, error)
func (*PingResult) MarshalVT ¶ added in v0.7.0
func (m *PingResult) MarshalVT() (dAtA []byte, err error)
func (*PingResult) ProtoMessage ¶
func (*PingResult) ProtoMessage()
func (*PingResult) ProtoReflect ¶ added in v0.7.0
func (x *PingResult) ProtoReflect() protoreflect.Message
func (*PingResult) Reset ¶
func (x *PingResult) Reset()
func (*PingResult) SizeVT ¶ added in v0.7.0
func (m *PingResult) SizeVT() (n int)
func (*PingResult) String ¶
func (x *PingResult) String() string
func (*PingResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PingResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PingResult) UnmarshalVT ¶ added in v0.7.0
func (m *PingResult) UnmarshalVT(dAtA []byte) error
type PresenceRequest ¶
type PresenceRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
// contains filtered or unexported fields
}
func (*PresenceRequest) Descriptor
deprecated
func (*PresenceRequest) Descriptor() ([]byte, []int)
Deprecated: Use PresenceRequest.ProtoReflect.Descriptor instead.
func (*PresenceRequest) GetChannel ¶
func (x *PresenceRequest) GetChannel() string
func (PresenceRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v PresenceRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PresenceRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PresenceRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PresenceRequest) MarshalToVT ¶ added in v0.7.0
func (m *PresenceRequest) MarshalToVT(dAtA []byte) (int, error)
func (*PresenceRequest) MarshalVT ¶ added in v0.7.0
func (m *PresenceRequest) MarshalVT() (dAtA []byte, err error)
func (*PresenceRequest) ProtoMessage ¶
func (*PresenceRequest) ProtoMessage()
func (*PresenceRequest) ProtoReflect ¶ added in v0.7.0
func (x *PresenceRequest) ProtoReflect() protoreflect.Message
func (*PresenceRequest) Reset ¶
func (x *PresenceRequest) Reset()
func (*PresenceRequest) SizeVT ¶ added in v0.7.0
func (m *PresenceRequest) SizeVT() (n int)
func (*PresenceRequest) String ¶
func (x *PresenceRequest) String() string
func (*PresenceRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PresenceRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PresenceRequest) UnmarshalVT ¶ added in v0.7.0
func (m *PresenceRequest) UnmarshalVT(dAtA []byte) error
type PresenceResult ¶
type PresenceResult struct {
Presence map[string]*ClientInfo `` /* 133-byte string literal not displayed */
// contains filtered or unexported fields
}
func (*PresenceResult) Descriptor
deprecated
func (*PresenceResult) Descriptor() ([]byte, []int)
Deprecated: Use PresenceResult.ProtoReflect.Descriptor instead.
func (*PresenceResult) GetPresence ¶
func (x *PresenceResult) GetPresence() map[string]*ClientInfo
func (PresenceResult) MarshalEasyJSON ¶ added in v0.6.0
func (v PresenceResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PresenceResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PresenceResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PresenceResult) MarshalToVT ¶ added in v0.7.0
func (m *PresenceResult) MarshalToVT(dAtA []byte) (int, error)
func (*PresenceResult) MarshalVT ¶ added in v0.7.0
func (m *PresenceResult) MarshalVT() (dAtA []byte, err error)
func (*PresenceResult) ProtoMessage ¶
func (*PresenceResult) ProtoMessage()
func (*PresenceResult) ProtoReflect ¶ added in v0.7.0
func (x *PresenceResult) ProtoReflect() protoreflect.Message
func (*PresenceResult) Reset ¶
func (x *PresenceResult) Reset()
func (*PresenceResult) SizeVT ¶ added in v0.7.0
func (m *PresenceResult) SizeVT() (n int)
func (*PresenceResult) String ¶
func (x *PresenceResult) String() string
func (*PresenceResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PresenceResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PresenceResult) UnmarshalVT ¶ added in v0.7.0
func (m *PresenceResult) UnmarshalVT(dAtA []byte) error
type PresenceStatsRequest ¶
type PresenceStatsRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
// contains filtered or unexported fields
}
func (*PresenceStatsRequest) Descriptor
deprecated
func (*PresenceStatsRequest) Descriptor() ([]byte, []int)
Deprecated: Use PresenceStatsRequest.ProtoReflect.Descriptor instead.
func (*PresenceStatsRequest) GetChannel ¶
func (x *PresenceStatsRequest) GetChannel() string
func (PresenceStatsRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v PresenceStatsRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PresenceStatsRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PresenceStatsRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PresenceStatsRequest) MarshalToVT ¶ added in v0.7.0
func (m *PresenceStatsRequest) MarshalToVT(dAtA []byte) (int, error)
func (*PresenceStatsRequest) MarshalVT ¶ added in v0.7.0
func (m *PresenceStatsRequest) MarshalVT() (dAtA []byte, err error)
func (*PresenceStatsRequest) ProtoMessage ¶
func (*PresenceStatsRequest) ProtoMessage()
func (*PresenceStatsRequest) ProtoReflect ¶ added in v0.7.0
func (x *PresenceStatsRequest) ProtoReflect() protoreflect.Message
func (*PresenceStatsRequest) Reset ¶
func (x *PresenceStatsRequest) Reset()
func (*PresenceStatsRequest) SizeVT ¶ added in v0.7.0
func (m *PresenceStatsRequest) SizeVT() (n int)
func (*PresenceStatsRequest) String ¶
func (x *PresenceStatsRequest) String() string
func (*PresenceStatsRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PresenceStatsRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PresenceStatsRequest) UnmarshalVT ¶ added in v0.7.0
func (m *PresenceStatsRequest) UnmarshalVT(dAtA []byte) error
type PresenceStatsResult ¶
type PresenceStatsResult struct {
NumClients uint32 `protobuf:"varint,1,opt,name=num_clients,json=numClients,proto3" json:"num_clients"`
NumUsers uint32 `protobuf:"varint,2,opt,name=num_users,json=numUsers,proto3" json:"num_users"`
// contains filtered or unexported fields
}
func (*PresenceStatsResult) Descriptor
deprecated
func (*PresenceStatsResult) Descriptor() ([]byte, []int)
Deprecated: Use PresenceStatsResult.ProtoReflect.Descriptor instead.
func (*PresenceStatsResult) GetNumClients ¶
func (x *PresenceStatsResult) GetNumClients() uint32
func (*PresenceStatsResult) GetNumUsers ¶
func (x *PresenceStatsResult) GetNumUsers() uint32
func (PresenceStatsResult) MarshalEasyJSON ¶ added in v0.6.0
func (v PresenceStatsResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PresenceStatsResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PresenceStatsResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PresenceStatsResult) MarshalToVT ¶ added in v0.7.0
func (m *PresenceStatsResult) MarshalToVT(dAtA []byte) (int, error)
func (*PresenceStatsResult) MarshalVT ¶ added in v0.7.0
func (m *PresenceStatsResult) MarshalVT() (dAtA []byte, err error)
func (*PresenceStatsResult) ProtoMessage ¶
func (*PresenceStatsResult) ProtoMessage()
func (*PresenceStatsResult) ProtoReflect ¶ added in v0.7.0
func (x *PresenceStatsResult) ProtoReflect() protoreflect.Message
func (*PresenceStatsResult) Reset ¶
func (x *PresenceStatsResult) Reset()
func (*PresenceStatsResult) SizeVT ¶ added in v0.7.0
func (m *PresenceStatsResult) SizeVT() (n int)
func (*PresenceStatsResult) String ¶
func (x *PresenceStatsResult) String() string
func (*PresenceStatsResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PresenceStatsResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PresenceStatsResult) UnmarshalVT ¶ added in v0.7.0
func (m *PresenceStatsResult) UnmarshalVT(dAtA []byte) error
type ProtobufCommandDecoder ¶
type ProtobufCommandDecoder struct {
// contains filtered or unexported fields
}
ProtobufCommandDecoder is a CommandDecoder for commands prefixed with their length encoded as a varint.
func NewProtobufCommandDecoder ¶
func NewProtobufCommandDecoder(data []byte) *ProtobufCommandDecoder
NewProtobufCommandDecoder creates a new ProtobufCommandDecoder for the given frame.
func (*ProtobufCommandDecoder) Decode ¶
func (d *ProtobufCommandDecoder) Decode() (*Command, error)
Decode returns the next Command in the frame. The last Command is returned together with io.EOF, see the CommandDecoder interface.
func (*ProtobufCommandDecoder) Reset ¶
func (d *ProtobufCommandDecoder) Reset(data []byte) error
Reset makes the decoder ready to decode commands from the given frame.
type ProtobufCommandEncoder ¶
type ProtobufCommandEncoder struct {
}
ProtobufCommandEncoder is a CommandEncoder which encodes to Protobuf.
func NewProtobufCommandEncoder ¶
func NewProtobufCommandEncoder() *ProtobufCommandEncoder
NewProtobufCommandEncoder creates a new ProtobufCommandEncoder. It's safe to use the returned encoder concurrently.
type ProtobufDataEncoder ¶ added in v0.4.0
type ProtobufDataEncoder struct {
// contains filtered or unexported fields
}
ProtobufDataEncoder is a DataEncoder which prefixes each message with its length encoded as a varint.
func NewProtobufDataEncoder ¶ added in v0.4.0
func NewProtobufDataEncoder() *ProtobufDataEncoder
NewProtobufDataEncoder creates a new ProtobufDataEncoder.
func (*ProtobufDataEncoder) Encode ¶ added in v0.4.0
func (e *ProtobufDataEncoder) Encode(data []byte) error
Encode appends an already encoded message to the frame, prefixing it with its length encoded as a varint.
func (*ProtobufDataEncoder) Finish ¶ added in v0.4.0
func (e *ProtobufDataEncoder) Finish() []byte
Finish returns a copy of the frame built so far.
func (*ProtobufDataEncoder) FinishNoCopy ¶ added in v0.18.2
func (e *ProtobufDataEncoder) FinishNoCopy() []byte
FinishNoCopy returns the frame built so far without copying it, see the DataEncoder interface for the lifetime of the returned slice.
func (*ProtobufDataEncoder) Reset ¶ added in v0.4.0
func (e *ProtobufDataEncoder) Reset()
Reset prepares the encoder to build a new frame.
type ProtobufPushEncoder ¶
type ProtobufPushEncoder struct {
}
ProtobufPushEncoder is a PushEncoder which encodes to Protobuf.
func NewProtobufPushEncoder ¶
func NewProtobufPushEncoder() *ProtobufPushEncoder
NewProtobufPushEncoder creates a new ProtobufPushEncoder. It's safe to use the returned encoder concurrently, see also DefaultProtobufPushEncoder.
func (*ProtobufPushEncoder) Encode ¶
func (e *ProtobufPushEncoder) Encode(message *Push) ([]byte, error)
Encode Push to bytes.
func (*ProtobufPushEncoder) EncodeConnect ¶ added in v0.4.0
func (e *ProtobufPushEncoder) EncodeConnect(message *Connect, reuse ...[]byte) ([]byte, error)
EncodeConnect to bytes.
func (*ProtobufPushEncoder) EncodeDisconnect ¶ added in v0.4.0
func (e *ProtobufPushEncoder) EncodeDisconnect(message *Disconnect, reuse ...[]byte) ([]byte, error)
EncodeDisconnect to bytes.
func (*ProtobufPushEncoder) EncodeJoin ¶
func (e *ProtobufPushEncoder) EncodeJoin(message *Join, reuse ...[]byte) ([]byte, error)
EncodeJoin to bytes.
func (*ProtobufPushEncoder) EncodeLeave ¶
func (e *ProtobufPushEncoder) EncodeLeave(message *Leave, reuse ...[]byte) ([]byte, error)
EncodeLeave to bytes.
func (*ProtobufPushEncoder) EncodeMessage ¶
func (e *ProtobufPushEncoder) EncodeMessage(message *Message, reuse ...[]byte) ([]byte, error)
EncodeMessage to bytes.
func (*ProtobufPushEncoder) EncodePublication ¶
func (e *ProtobufPushEncoder) EncodePublication(message *Publication, reuse ...[]byte) ([]byte, error)
EncodePublication to bytes.
func (*ProtobufPushEncoder) EncodeRefresh ¶ added in v0.6.0
func (e *ProtobufPushEncoder) EncodeRefresh(message *Refresh, reuse ...[]byte) ([]byte, error)
EncodeRefresh to bytes.
func (*ProtobufPushEncoder) EncodeSubscribe ¶ added in v0.4.0
func (e *ProtobufPushEncoder) EncodeSubscribe(message *Subscribe, reuse ...[]byte) ([]byte, error)
EncodeSubscribe to bytes.
func (*ProtobufPushEncoder) EncodeUnsubscribe ¶ added in v0.4.0
func (e *ProtobufPushEncoder) EncodeUnsubscribe(message *Unsubscribe, reuse ...[]byte) ([]byte, error)
EncodeUnsubscribe to bytes.
type ProtobufReplyDecoder ¶
type ProtobufReplyDecoder struct {
// contains filtered or unexported fields
}
ProtobufReplyDecoder is a ReplyDecoder for replies prefixed with their length encoded as a varint.
func NewProtobufReplyDecoder ¶
func NewProtobufReplyDecoder(data []byte) *ProtobufReplyDecoder
NewProtobufReplyDecoder creates a new ProtobufReplyDecoder for the given frame.
func (*ProtobufReplyDecoder) Decode ¶
func (d *ProtobufReplyDecoder) Decode() (*Reply, error)
Decode returns the next Reply in the frame, or io.EOF if there are no replies left. It returns io.ErrShortBuffer if a length prefix does not match the data which follows it.
func (*ProtobufReplyDecoder) Reset ¶
func (d *ProtobufReplyDecoder) Reset(data []byte) error
Reset makes the decoder ready to decode replies from the given frame.
type ProtobufReplyEncoder ¶
type ProtobufReplyEncoder struct{}
ProtobufReplyEncoder is a ReplyEncoder which encodes to Protobuf.
func NewProtobufReplyEncoder ¶
func NewProtobufReplyEncoder() *ProtobufReplyEncoder
NewProtobufReplyEncoder creates a new ProtobufReplyEncoder. It's safe to use the returned encoder concurrently, see also DefaultProtobufReplyEncoder.
type ProtobufResultEncoder ¶
type ProtobufResultEncoder struct{}
ProtobufResultEncoder is a ResultEncoder which encodes to Protobuf.
func NewProtobufResultEncoder ¶
func NewProtobufResultEncoder() *ProtobufResultEncoder
NewProtobufResultEncoder creates a new ProtobufResultEncoder. It's safe to use the returned encoder concurrently.
func (*ProtobufResultEncoder) EncodeConnectResult ¶
func (e *ProtobufResultEncoder) EncodeConnectResult(res *ConnectResult) ([]byte, error)
EncodeConnectResult encodes ConnectResult to bytes.
func (*ProtobufResultEncoder) EncodeHistoryResult ¶
func (e *ProtobufResultEncoder) EncodeHistoryResult(res *HistoryResult) ([]byte, error)
EncodeHistoryResult encodes HistoryResult to bytes.
func (*ProtobufResultEncoder) EncodePingResult ¶
func (e *ProtobufResultEncoder) EncodePingResult(res *PingResult) ([]byte, error)
EncodePingResult encodes PingResult to bytes.
func (*ProtobufResultEncoder) EncodePresenceResult ¶
func (e *ProtobufResultEncoder) EncodePresenceResult(res *PresenceResult) ([]byte, error)
EncodePresenceResult encodes PresenceResult to bytes.
func (*ProtobufResultEncoder) EncodePresenceStatsResult ¶
func (e *ProtobufResultEncoder) EncodePresenceStatsResult(res *PresenceStatsResult) ([]byte, error)
EncodePresenceStatsResult encodes PresenceStatsResult to bytes.
func (*ProtobufResultEncoder) EncodePublishResult ¶
func (e *ProtobufResultEncoder) EncodePublishResult(res *PublishResult) ([]byte, error)
EncodePublishResult encodes PublishResult to bytes.
func (*ProtobufResultEncoder) EncodeRPCResult ¶
func (e *ProtobufResultEncoder) EncodeRPCResult(res *RPCResult) ([]byte, error)
EncodeRPCResult encodes RPCResult to bytes.
func (*ProtobufResultEncoder) EncodeRefreshResult ¶
func (e *ProtobufResultEncoder) EncodeRefreshResult(res *RefreshResult) ([]byte, error)
EncodeRefreshResult encodes RefreshResult to bytes.
func (*ProtobufResultEncoder) EncodeSubRefreshResult ¶
func (e *ProtobufResultEncoder) EncodeSubRefreshResult(res *SubRefreshResult) ([]byte, error)
EncodeSubRefreshResult encodes SubRefreshResult to bytes.
func (*ProtobufResultEncoder) EncodeSubscribeResult ¶
func (e *ProtobufResultEncoder) EncodeSubscribeResult(res *SubscribeResult) ([]byte, error)
EncodeSubscribeResult encodes SubscribeResult to bytes.
func (*ProtobufResultEncoder) EncodeUnsubscribeResult ¶
func (e *ProtobufResultEncoder) EncodeUnsubscribeResult(res *UnsubscribeResult) ([]byte, error)
EncodeUnsubscribeResult encodes UnsubscribeResult to bytes.
type ProtobufStreamCommandDecoder ¶ added in v0.8.10
type ProtobufStreamCommandDecoder struct {
// contains filtered or unexported fields
}
ProtobufStreamCommandDecoder is a StreamCommandDecoder which reads commands prefixed with their length encoded as a varint.
func NewProtobufStreamCommandDecoder ¶ added in v0.8.10
func NewProtobufStreamCommandDecoder(reader io.Reader, messageSizeLimit int64) *ProtobufStreamCommandDecoder
NewProtobufStreamCommandDecoder creates a new ProtobufStreamCommandDecoder reading from reader. messageSizeLimit must be positive; a zero or negative value panics, since the varint length prefix is attacker-controlled and used as an allocation size, so an unbounded decoder over untrusted input is a memory-exhaustion hazard.
func (*ProtobufStreamCommandDecoder) Decode ¶ added in v0.8.10
func (d *ProtobufStreamCommandDecoder) Decode() (*Command, int, error)
Decode returns the next Command from the stream, see the StreamCommandDecoder interface. The size limit is checked against the length prefix before the command is read, so an oversized command is rejected without buffering it.
type Publication ¶
type Publication struct {
Data Raw `protobuf:"bytes,4,opt,name=data,proto3" json:"data,omitempty"` // Data contains publication payload.
Info *ClientInfo `protobuf:"bytes,5,opt,name=info,proto3" json:"info,omitempty"` // Info contains optional information about publisher. Usually it is set only if publication goes from the client side.
Offset uint64 `protobuf:"varint,6,opt,name=offset,proto3" json:"offset,omitempty"` // Offset is a stream offset of the publication. Epoch is given in SubscribeResult.
Tags map[string]string `` // Optional tags associated with publication.
/* 135-byte string literal not displayed */
Delta bool `protobuf:"varint,8,opt,name=delta,proto3" json:"delta,omitempty"` // When set indicates that data in Publication is a delta from previous data.
Time int64 `protobuf:"varint,9,opt,name=time,proto3" json:"time,omitempty"` // Optional time of publication as Unix timestamp milliseconds.
Channel string `protobuf:"bytes,10,opt,name=channel,proto3" json:"channel,omitempty"` // Optional channel name if Publication relates to wildcard subscription.
Key string `protobuf:"bytes,11,opt,name=key,proto3" json:"key,omitempty"` // Optional key associated with publication.
Removed bool `protobuf:"varint,12,opt,name=removed,proto3" json:"removed,omitempty"` // When set indicates that this publication is a removal of a previously published item.
Score int64 `protobuf:"zigzag64,13,opt,name=score,proto3" json:"score,omitempty"` // Represents score to order.
Epoch string `protobuf:"bytes,14,opt,name=epoch,proto3" json:"epoch,omitempty"` // Optional epoch.
PrevData Raw `protobuf:"bytes,15,opt,name=prev_data,json=prevData,proto3" json:"prev_data,omitempty"` // Previous data for delta computation in broker fan-out.
Version uint64 `protobuf:"varint,16,opt,name=version,proto3" json:"version,omitempty"`
// contains filtered or unexported fields
}
Publication in channel.
func (*Publication) Descriptor
deprecated
func (*Publication) Descriptor() ([]byte, []int)
Deprecated: Use Publication.ProtoReflect.Descriptor instead.
func (*Publication) GetChannel ¶ added in v0.13.4
func (x *Publication) GetChannel() string
func (*Publication) GetData ¶ added in v0.7.0
func (x *Publication) GetData() []byte
func (*Publication) GetDelta ¶ added in v0.13.0
func (x *Publication) GetDelta() bool
func (*Publication) GetEpoch ¶ added in v0.19.0
func (x *Publication) GetEpoch() string
func (*Publication) GetInfo ¶
func (x *Publication) GetInfo() *ClientInfo
func (*Publication) GetKey ¶ added in v0.19.0
func (x *Publication) GetKey() string
func (*Publication) GetOffset ¶
func (x *Publication) GetOffset() uint64
func (*Publication) GetPrevData ¶ added in v0.19.0
func (x *Publication) GetPrevData() []byte
func (*Publication) GetRemoved ¶ added in v0.19.0
func (x *Publication) GetRemoved() bool
func (*Publication) GetScore ¶ added in v0.19.0
func (x *Publication) GetScore() int64
func (*Publication) GetTags ¶ added in v0.8.1
func (x *Publication) GetTags() map[string]string
func (*Publication) GetTime ¶ added in v0.13.3
func (x *Publication) GetTime() int64
func (*Publication) GetVersion ¶ added in v0.19.0
func (x *Publication) GetVersion() uint64
func (Publication) MarshalEasyJSON ¶ added in v0.6.0
func (v Publication) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Publication) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *Publication) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Publication) MarshalToVT ¶ added in v0.7.0
func (m *Publication) MarshalToVT(dAtA []byte) (int, error)
func (*Publication) MarshalVT ¶ added in v0.7.0
func (m *Publication) MarshalVT() (dAtA []byte, err error)
func (*Publication) ProtoMessage ¶
func (*Publication) ProtoMessage()
func (*Publication) ProtoReflect ¶ added in v0.7.0
func (x *Publication) ProtoReflect() protoreflect.Message
func (*Publication) Reset ¶
func (x *Publication) Reset()
func (*Publication) SizeVT ¶ added in v0.7.0
func (m *Publication) SizeVT() (n int)
func (*Publication) String ¶
func (x *Publication) String() string
func (*Publication) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *Publication) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Publication) UnmarshalVT ¶ added in v0.7.0
func (m *Publication) UnmarshalVT(dAtA []byte) error
type PublishRequest ¶
type PublishRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
Data Raw `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` // 0 = regular (default), 1 = map
Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` // Map publish: key to publish/remove
Removed bool `protobuf:"varint,5,opt,name=removed,proto3" json:"removed,omitempty"` // Map publish: true = remove this key
// contains filtered or unexported fields
}
func (*PublishRequest) Descriptor
deprecated
func (*PublishRequest) Descriptor() ([]byte, []int)
Deprecated: Use PublishRequest.ProtoReflect.Descriptor instead.
func (*PublishRequest) GetChannel ¶
func (x *PublishRequest) GetChannel() string
func (*PublishRequest) GetData ¶ added in v0.7.0
func (x *PublishRequest) GetData() []byte
func (*PublishRequest) GetKey ¶ added in v0.19.0
func (x *PublishRequest) GetKey() string
func (*PublishRequest) GetRemoved ¶ added in v0.19.0
func (x *PublishRequest) GetRemoved() bool
func (*PublishRequest) GetType ¶ added in v0.19.0
func (x *PublishRequest) GetType() int32
func (PublishRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v PublishRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PublishRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PublishRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PublishRequest) MarshalToVT ¶ added in v0.7.0
func (m *PublishRequest) MarshalToVT(dAtA []byte) (int, error)
func (*PublishRequest) MarshalVT ¶ added in v0.7.0
func (m *PublishRequest) MarshalVT() (dAtA []byte, err error)
func (*PublishRequest) ProtoMessage ¶
func (*PublishRequest) ProtoMessage()
func (*PublishRequest) ProtoReflect ¶ added in v0.7.0
func (x *PublishRequest) ProtoReflect() protoreflect.Message
func (*PublishRequest) Reset ¶
func (x *PublishRequest) Reset()
func (*PublishRequest) SizeVT ¶ added in v0.7.0
func (m *PublishRequest) SizeVT() (n int)
func (*PublishRequest) String ¶
func (x *PublishRequest) String() string
func (*PublishRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PublishRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PublishRequest) UnmarshalVT ¶ added in v0.7.0
func (m *PublishRequest) UnmarshalVT(dAtA []byte) error
type PublishResult ¶
type PublishResult struct {
// contains filtered or unexported fields
}
func (*PublishResult) Descriptor
deprecated
func (*PublishResult) Descriptor() ([]byte, []int)
Deprecated: Use PublishResult.ProtoReflect.Descriptor instead.
func (PublishResult) MarshalEasyJSON ¶ added in v0.6.0
func (v PublishResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*PublishResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *PublishResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*PublishResult) MarshalToVT ¶ added in v0.7.0
func (m *PublishResult) MarshalToVT(dAtA []byte) (int, error)
func (*PublishResult) MarshalVT ¶ added in v0.7.0
func (m *PublishResult) MarshalVT() (dAtA []byte, err error)
func (*PublishResult) ProtoMessage ¶
func (*PublishResult) ProtoMessage()
func (*PublishResult) ProtoReflect ¶ added in v0.7.0
func (x *PublishResult) ProtoReflect() protoreflect.Message
func (*PublishResult) Reset ¶
func (x *PublishResult) Reset()
func (*PublishResult) SizeVT ¶ added in v0.7.0
func (m *PublishResult) SizeVT() (n int)
func (*PublishResult) String ¶
func (x *PublishResult) String() string
func (*PublishResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *PublishResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*PublishResult) UnmarshalVT ¶ added in v0.7.0
func (m *PublishResult) UnmarshalVT(dAtA []byte) error
type Push ¶
type Push struct {
Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` // Optional numeric channel ID to avoid sending string channel in Push (bandwidth optimization).
Channel string `protobuf:"bytes,2,opt,name=channel,proto3" json:"channel,omitempty"`
// Server can push one of the following fields to the client. We are
// not using oneof here due to JSON interoperability concerns.
Pub *Publication `protobuf:"bytes,4,opt,name=pub,proto3" json:"pub,omitempty"`
Join *Join `protobuf:"bytes,5,opt,name=join,proto3" json:"join,omitempty"`
Leave *Leave `protobuf:"bytes,6,opt,name=leave,proto3" json:"leave,omitempty"`
Unsubscribe *Unsubscribe `protobuf:"bytes,7,opt,name=unsubscribe,proto3" json:"unsubscribe,omitempty"`
Message *Message `protobuf:"bytes,8,opt,name=message,proto3" json:"message,omitempty"`
Subscribe *Subscribe `protobuf:"bytes,9,opt,name=subscribe,proto3" json:"subscribe,omitempty"`
Connect *Connect `protobuf:"bytes,10,opt,name=connect,proto3" json:"connect,omitempty"`
Disconnect *Disconnect `protobuf:"bytes,11,opt,name=disconnect,proto3" json:"disconnect,omitempty"`
Refresh *Refresh `protobuf:"bytes,12,opt,name=refresh,proto3" json:"refresh,omitempty"`
// contains filtered or unexported fields
}
Push can be sent to a client as part of Reply in case of bidirectional transport or without additional wrapping in case of unidirectional transports.
func (*Push) Descriptor
deprecated
func (*Push) GetChannel ¶
func (*Push) GetConnect ¶ added in v0.8.0
func (*Push) GetDisconnect ¶ added in v0.8.0
func (x *Push) GetDisconnect() *Disconnect
func (*Push) GetMessage ¶ added in v0.8.0
func (*Push) GetPub ¶ added in v0.8.0
func (x *Push) GetPub() *Publication
func (*Push) GetRefresh ¶ added in v0.8.0
func (*Push) GetSubscribe ¶ added in v0.8.0
func (*Push) GetUnsubscribe ¶ added in v0.8.0
func (x *Push) GetUnsubscribe() *Unsubscribe
func (Push) MarshalEasyJSON ¶ added in v0.6.0
func (v Push) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Push) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Push) ProtoMessage ¶
func (*Push) ProtoMessage()
func (*Push) ProtoReflect ¶ added in v0.7.0
func (x *Push) ProtoReflect() protoreflect.Message
func (*Push) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Push) UnmarshalVT ¶ added in v0.7.0
type PushEncoder ¶
type PushEncoder interface {
Encode(*Push) ([]byte, error)
EncodeMessage(*Message, ...[]byte) ([]byte, error)
EncodePublication(*Publication, ...[]byte) ([]byte, error)
EncodeJoin(*Join, ...[]byte) ([]byte, error)
EncodeLeave(*Leave, ...[]byte) ([]byte, error)
EncodeUnsubscribe(*Unsubscribe, ...[]byte) ([]byte, error)
EncodeSubscribe(*Subscribe, ...[]byte) ([]byte, error)
EncodeConnect(*Connect, ...[]byte) ([]byte, error)
EncodeDisconnect(*Disconnect, ...[]byte) ([]byte, error)
EncodeRefresh(*Refresh, ...[]byte) ([]byte, error)
}
PushEncoder encodes Push and its parts to bytes.
Parts of a Push are encoded separately from the Push envelope, so that a payload encoded once may be reused for all subscribers of a channel.
Methods which accept a variadic reuse argument may write the result into the provided buffer if it's large enough, avoiding an allocation. The returned slice may or may not alias the given buffer, so always use the returned value and don't touch the buffer until the result is not needed anymore.
func GetPushEncoder ¶
func GetPushEncoder(protoType Type) PushEncoder
GetPushEncoder returns a PushEncoder for the given protocol type. Any type other than TypeJSON is treated as TypeProtobuf.
type RPCRequest ¶
type RPCRequest struct {
Data Raw `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"`
// contains filtered or unexported fields
}
func (*RPCRequest) Descriptor
deprecated
func (*RPCRequest) Descriptor() ([]byte, []int)
Deprecated: Use RPCRequest.ProtoReflect.Descriptor instead.
func (*RPCRequest) GetData ¶ added in v0.7.0
func (x *RPCRequest) GetData() []byte
func (*RPCRequest) GetMethod ¶ added in v0.3.3
func (x *RPCRequest) GetMethod() string
func (RPCRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v RPCRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*RPCRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *RPCRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*RPCRequest) MarshalToVT ¶ added in v0.7.0
func (m *RPCRequest) MarshalToVT(dAtA []byte) (int, error)
func (*RPCRequest) MarshalVT ¶ added in v0.7.0
func (m *RPCRequest) MarshalVT() (dAtA []byte, err error)
func (*RPCRequest) ProtoMessage ¶
func (*RPCRequest) ProtoMessage()
func (*RPCRequest) ProtoReflect ¶ added in v0.7.0
func (x *RPCRequest) ProtoReflect() protoreflect.Message
func (*RPCRequest) Reset ¶
func (x *RPCRequest) Reset()
func (*RPCRequest) SizeVT ¶ added in v0.7.0
func (m *RPCRequest) SizeVT() (n int)
func (*RPCRequest) String ¶
func (x *RPCRequest) String() string
func (*RPCRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *RPCRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*RPCRequest) UnmarshalVT ¶ added in v0.7.0
func (m *RPCRequest) UnmarshalVT(dAtA []byte) error
type RPCResult ¶
type RPCResult struct {
Data Raw `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
func (*RPCResult) Descriptor
deprecated
func (RPCResult) MarshalEasyJSON ¶ added in v0.6.0
func (v RPCResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*RPCResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*RPCResult) MarshalToVT ¶ added in v0.7.0
func (*RPCResult) ProtoMessage ¶
func (*RPCResult) ProtoMessage()
func (*RPCResult) ProtoReflect ¶ added in v0.7.0
func (x *RPCResult) ProtoReflect() protoreflect.Message
func (*RPCResult) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*RPCResult) UnmarshalVT ¶ added in v0.7.0
type Raw ¶
type Raw []byte
Raw is the type used by the Centrifugal protocol for fields whose value we want to stay untouched – for example the application-specific JSON payload of a published message. It's very similar to json.RawMessage, but its encoding also accounts for the `\n` delimiter used to put several messages into a single transport frame.
Generated code uses Raw instead of []byte for all bytes fields, see generate.sh.
func (Raw) MarshalJSON ¶
MarshalJSON returns r as the JSON encoding of r.
Raw payloads are passed through as is, with one exception: raw newlines are stripped, since a `\n` delimits messages inside a transport frame. Valid JSON only contains raw newlines as formatting whitespace between tokens – newlines within JSON strings are escaped – so removing them doesn't change the payload a subscriber decodes.
The returned slice may alias r, so it must not be modified.
func (*Raw) UnmarshalJSON ¶
UnmarshalJSON sets *r to a copy of data.
type Refresh ¶ added in v0.6.0
type Refresh struct {
Expires bool `protobuf:"varint,1,opt,name=expires,proto3" json:"expires,omitempty"`
Ttl uint32 `protobuf:"varint,2,opt,name=ttl,proto3" json:"ttl,omitempty"`
// contains filtered or unexported fields
}
func (*Refresh) Descriptor
deprecated
added in
v0.6.0
func (*Refresh) GetExpires ¶ added in v0.6.0
func (Refresh) MarshalEasyJSON ¶ added in v0.6.0
func (v Refresh) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Refresh) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Refresh) MarshalToVT ¶ added in v0.7.0
func (*Refresh) ProtoMessage ¶ added in v0.6.0
func (*Refresh) ProtoMessage()
func (*Refresh) ProtoReflect ¶ added in v0.7.0
func (x *Refresh) ProtoReflect() protoreflect.Message
func (*Refresh) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Refresh) UnmarshalVT ¶ added in v0.7.0
type RefreshRequest ¶
type RefreshRequest struct {
Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
// contains filtered or unexported fields
}
func (*RefreshRequest) Descriptor
deprecated
func (*RefreshRequest) Descriptor() ([]byte, []int)
Deprecated: Use RefreshRequest.ProtoReflect.Descriptor instead.
func (*RefreshRequest) GetToken ¶
func (x *RefreshRequest) GetToken() string
func (RefreshRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v RefreshRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*RefreshRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *RefreshRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*RefreshRequest) MarshalToVT ¶ added in v0.7.0
func (m *RefreshRequest) MarshalToVT(dAtA []byte) (int, error)
func (*RefreshRequest) MarshalVT ¶ added in v0.7.0
func (m *RefreshRequest) MarshalVT() (dAtA []byte, err error)
func (*RefreshRequest) ProtoMessage ¶
func (*RefreshRequest) ProtoMessage()
func (*RefreshRequest) ProtoReflect ¶ added in v0.7.0
func (x *RefreshRequest) ProtoReflect() protoreflect.Message
func (*RefreshRequest) Reset ¶
func (x *RefreshRequest) Reset()
func (*RefreshRequest) SizeVT ¶ added in v0.7.0
func (m *RefreshRequest) SizeVT() (n int)
func (*RefreshRequest) String ¶
func (x *RefreshRequest) String() string
func (*RefreshRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *RefreshRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*RefreshRequest) UnmarshalVT ¶ added in v0.7.0
func (m *RefreshRequest) UnmarshalVT(dAtA []byte) error
type RefreshResult ¶
type RefreshResult struct {
Client string `protobuf:"bytes,1,opt,name=client,proto3" json:"client,omitempty"`
Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
Expires bool `protobuf:"varint,3,opt,name=expires,proto3" json:"expires,omitempty"`
Ttl uint32 `protobuf:"varint,4,opt,name=ttl,proto3" json:"ttl,omitempty"`
// contains filtered or unexported fields
}
func (*RefreshResult) Descriptor
deprecated
func (*RefreshResult) Descriptor() ([]byte, []int)
Deprecated: Use RefreshResult.ProtoReflect.Descriptor instead.
func (*RefreshResult) GetClient ¶
func (x *RefreshResult) GetClient() string
func (*RefreshResult) GetExpires ¶
func (x *RefreshResult) GetExpires() bool
func (*RefreshResult) GetTtl ¶ added in v0.4.1
func (x *RefreshResult) GetTtl() uint32
func (*RefreshResult) GetVersion ¶
func (x *RefreshResult) GetVersion() string
func (RefreshResult) MarshalEasyJSON ¶ added in v0.6.0
func (v RefreshResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*RefreshResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *RefreshResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*RefreshResult) MarshalToVT ¶ added in v0.7.0
func (m *RefreshResult) MarshalToVT(dAtA []byte) (int, error)
func (*RefreshResult) MarshalVT ¶ added in v0.7.0
func (m *RefreshResult) MarshalVT() (dAtA []byte, err error)
func (*RefreshResult) ProtoMessage ¶
func (*RefreshResult) ProtoMessage()
func (*RefreshResult) ProtoReflect ¶ added in v0.7.0
func (x *RefreshResult) ProtoReflect() protoreflect.Message
func (*RefreshResult) Reset ¶
func (x *RefreshResult) Reset()
func (*RefreshResult) SizeVT ¶ added in v0.7.0
func (m *RefreshResult) SizeVT() (n int)
func (*RefreshResult) String ¶
func (x *RefreshResult) String() string
func (*RefreshResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *RefreshResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*RefreshResult) UnmarshalVT ¶ added in v0.7.0
func (m *RefreshResult) UnmarshalVT(dAtA []byte) error
type Reply ¶
type Reply struct {
// Id will only be set to a value > 0 for replies to commands. For pushes
// coming from server to client it has zero value.
Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
// Error can only be set in replies to commands. For pushes it is never set.
Error *Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
// ProtocolVersion2 server can send one of the following fields. We are not using
// oneof here due to JSON interoperability concerns.
Push *Push `protobuf:"bytes,4,opt,name=push,proto3" json:"push,omitempty"`
Connect *ConnectResult `protobuf:"bytes,5,opt,name=connect,proto3" json:"connect,omitempty"`
Subscribe *SubscribeResult `protobuf:"bytes,6,opt,name=subscribe,proto3" json:"subscribe,omitempty"`
Unsubscribe *UnsubscribeResult `protobuf:"bytes,7,opt,name=unsubscribe,proto3" json:"unsubscribe,omitempty"`
Publish *PublishResult `protobuf:"bytes,8,opt,name=publish,proto3" json:"publish,omitempty"`
Presence *PresenceResult `protobuf:"bytes,9,opt,name=presence,proto3" json:"presence,omitempty"`
PresenceStats *PresenceStatsResult `protobuf:"bytes,10,opt,name=presence_stats,json=presenceStats,proto3" json:"presence_stats,omitempty"`
History *HistoryResult `protobuf:"bytes,11,opt,name=history,proto3" json:"history,omitempty"`
Ping *PingResult `protobuf:"bytes,12,opt,name=ping,proto3" json:"ping,omitempty"`
Rpc *RPCResult `protobuf:"bytes,13,opt,name=rpc,proto3" json:"rpc,omitempty"`
Refresh *RefreshResult `protobuf:"bytes,14,opt,name=refresh,proto3" json:"refresh,omitempty"`
SubRefresh *SubRefreshResult `protobuf:"bytes,15,opt,name=sub_refresh,json=subRefresh,proto3" json:"sub_refresh,omitempty"`
// contains filtered or unexported fields
}
Reply is sent from a server to a client is sent as a response to Command or can be an async server-to-client Push.
func (*Reply) Descriptor
deprecated
func (*Reply) GetConnect ¶ added in v0.8.0
func (x *Reply) GetConnect() *ConnectResult
func (*Reply) GetHistory ¶ added in v0.8.0
func (x *Reply) GetHistory() *HistoryResult
func (*Reply) GetPing ¶ added in v0.8.0
func (x *Reply) GetPing() *PingResult
func (*Reply) GetPresence ¶ added in v0.8.0
func (x *Reply) GetPresence() *PresenceResult
func (*Reply) GetPresenceStats ¶ added in v0.8.0
func (x *Reply) GetPresenceStats() *PresenceStatsResult
func (*Reply) GetPublish ¶ added in v0.8.0
func (x *Reply) GetPublish() *PublishResult
func (*Reply) GetRefresh ¶ added in v0.8.0
func (x *Reply) GetRefresh() *RefreshResult
func (*Reply) GetSubRefresh ¶ added in v0.8.0
func (x *Reply) GetSubRefresh() *SubRefreshResult
func (*Reply) GetSubscribe ¶ added in v0.8.0
func (x *Reply) GetSubscribe() *SubscribeResult
func (*Reply) GetUnsubscribe ¶ added in v0.8.0
func (x *Reply) GetUnsubscribe() *UnsubscribeResult
func (Reply) MarshalEasyJSON ¶ added in v0.6.0
func (v Reply) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Reply) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Reply) ProtoMessage ¶
func (*Reply) ProtoMessage()
func (*Reply) ProtoReflect ¶ added in v0.7.0
func (x *Reply) ProtoReflect() protoreflect.Message
func (*Reply) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Reply) UnmarshalVT ¶ added in v0.7.0
type ReplyDecoder ¶
type ReplyDecoder interface {
// Reset makes the decoder ready to decode replies from the given frame.
Reset([]byte) error
// Decode returns the next Reply in the frame, or io.EOF if there are no
// replies left.
Decode() (*Reply, error)
}
ReplyDecoder decodes replies from a transport frame which may contain several of them. It's the client-side counterpart of ReplyEncoder.
Unlike CommandDecoder, Decode here returns io.EOF on its own once the frame is fully processed – with a nil Reply.
A ReplyDecoder is not safe for concurrent use.
type ReplyEncoder ¶
ReplyEncoder encodes Reply to bytes. Use GetReplyEncoder to get an implementation for a concrete protocol Type.
func GetReplyEncoder ¶
func GetReplyEncoder(protoType Type) ReplyEncoder
GetReplyEncoder returns a ReplyEncoder for the given protocol type. Any type other than TypeJSON is treated as TypeProtobuf.
Example ¶
Replies are encoded per protocol type. The encoded result may be sent to a connection as is, or concatenated with other messages using a DataEncoder.
package main
import (
"fmt"
"github.com/centrifugal/protocol"
)
func main() {
reply := &protocol.Reply{
Id: 1,
Connect: &protocol.ConnectResult{Client: "6d67dbfd", Version: "6.0.0"},
}
data, err := protocol.GetReplyEncoder(protocol.TypeJSON).Encode(reply)
if err != nil {
fmt.Println("encode error:", err)
return
}
fmt.Println(string(data))
}
Output: {"id":1,"connect":{"client":"6d67dbfd","version":"6.0.0"}}
type ReplyPoolCollection ¶ added in v0.9.0
type ReplyPoolCollection struct {
// contains filtered or unexported fields
}
ReplyPoolCollection is a set of pools of Reply objects, one pool per result type. Reusing Reply objects keeps a server from allocating an envelope for every command it answers.
Use the shared ReplyPool rather than creating a collection directly.
func (*ReplyPoolCollection) AcquireConnectReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireConnectReply(result *ConnectResult) *Reply
AcquireConnectReply takes a Reply from the pool and sets the given ConnectResult on it.
func (*ReplyPoolCollection) AcquireHistoryReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireHistoryReply(result *HistoryResult) *Reply
AcquireHistoryReply takes a Reply from the pool and sets the given HistoryResult on it.
func (*ReplyPoolCollection) AcquirePresenceReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquirePresenceReply(result *PresenceResult) *Reply
AcquirePresenceReply takes a Reply from the pool and sets the given PresenceResult on it.
func (*ReplyPoolCollection) AcquirePresenceStatsReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquirePresenceStatsReply(result *PresenceStatsResult) *Reply
AcquirePresenceStatsReply takes a Reply from the pool and sets the given PresenceStatsResult on it.
func (*ReplyPoolCollection) AcquirePublishReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquirePublishReply(result *PublishResult) *Reply
AcquirePublishReply takes a Reply from the pool and sets the given PublishResult on it.
func (*ReplyPoolCollection) AcquireRPCReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireRPCReply(result *RPCResult) *Reply
AcquireRPCReply takes a Reply from the pool and sets the given RPCResult on it.
func (*ReplyPoolCollection) AcquireRefreshReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireRefreshReply(result *RefreshResult) *Reply
AcquireRefreshReply takes a Reply from the pool and sets the given RefreshResult on it.
func (*ReplyPoolCollection) AcquireSubRefreshReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireSubRefreshReply(result *SubRefreshResult) *Reply
AcquireSubRefreshReply takes a Reply from the pool and sets the given SubRefreshResult on it.
func (*ReplyPoolCollection) AcquireSubscribeReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireSubscribeReply(result *SubscribeResult) *Reply
AcquireSubscribeReply takes a Reply from the pool and sets the given SubscribeResult on it.
func (*ReplyPoolCollection) AcquireUnsubscribeReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) AcquireUnsubscribeReply(result *UnsubscribeResult) *Reply
AcquireUnsubscribeReply takes a Reply from the pool and sets the given UnsubscribeResult on it.
func (*ReplyPoolCollection) ReleaseConnectReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseConnectReply(r *Reply)
ReleaseConnectReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleaseHistoryReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseHistoryReply(r *Reply)
ReleaseHistoryReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleasePresenceReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleasePresenceReply(r *Reply)
ReleasePresenceReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleasePresenceStatsReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleasePresenceStatsReply(r *Reply)
ReleasePresenceStatsReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleasePublishReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleasePublishReply(r *Reply)
ReleasePublishReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleaseRPCReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseRPCReply(r *Reply)
ReleaseRPCReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleaseRefreshReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseRefreshReply(r *Reply)
ReleaseRefreshReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleaseSubRefreshReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseSubRefreshReply(r *Reply)
ReleaseSubRefreshReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleaseSubscribeReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseSubscribeReply(r *Reply)
ReleaseSubscribeReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
func (*ReplyPoolCollection) ReleaseUnsubscribeReply ¶ added in v0.9.0
func (p *ReplyPoolCollection) ReleaseUnsubscribeReply(r *Reply)
ReleaseUnsubscribeReply clears r and returns it to the pool. Neither r nor the result it referenced must be used after this call.
type ResultEncoder ¶
type ResultEncoder interface {
EncodeConnectResult(*ConnectResult) ([]byte, error)
EncodeRefreshResult(*RefreshResult) ([]byte, error)
EncodeSubscribeResult(*SubscribeResult) ([]byte, error)
EncodeSubRefreshResult(*SubRefreshResult) ([]byte, error)
EncodeUnsubscribeResult(*UnsubscribeResult) ([]byte, error)
EncodePublishResult(*PublishResult) ([]byte, error)
EncodePresenceResult(*PresenceResult) ([]byte, error)
EncodePresenceStatsResult(*PresenceStatsResult) ([]byte, error)
EncodeHistoryResult(*HistoryResult) ([]byte, error)
EncodePingResult(*PingResult) ([]byte, error)
EncodeRPCResult(*RPCResult) ([]byte, error)
}
ResultEncoder encodes command results to bytes. Results are encoded separately from the Reply envelope, so that a result may be encoded once and then reused for many connections. Use GetResultEncoder to get an implementation for a concrete protocol Type.
func GetResultEncoder ¶
func GetResultEncoder(protoType Type) ResultEncoder
GetResultEncoder returns a ResultEncoder for the given protocol type. Any type other than TypeJSON is treated as TypeProtobuf.
type SendRequest ¶
type SendRequest struct {
Data Raw `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
func (*SendRequest) Descriptor
deprecated
func (*SendRequest) Descriptor() ([]byte, []int)
Deprecated: Use SendRequest.ProtoReflect.Descriptor instead.
func (*SendRequest) GetData ¶ added in v0.7.0
func (x *SendRequest) GetData() []byte
func (SendRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v SendRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*SendRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *SendRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*SendRequest) MarshalToVT ¶ added in v0.7.0
func (m *SendRequest) MarshalToVT(dAtA []byte) (int, error)
func (*SendRequest) MarshalVT ¶ added in v0.7.0
func (m *SendRequest) MarshalVT() (dAtA []byte, err error)
func (*SendRequest) ProtoMessage ¶
func (*SendRequest) ProtoMessage()
func (*SendRequest) ProtoReflect ¶ added in v0.7.0
func (x *SendRequest) ProtoReflect() protoreflect.Message
func (*SendRequest) Reset ¶
func (x *SendRequest) Reset()
func (*SendRequest) SizeVT ¶ added in v0.7.0
func (m *SendRequest) SizeVT() (n int)
func (*SendRequest) String ¶
func (x *SendRequest) String() string
func (*SendRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *SendRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*SendRequest) UnmarshalVT ¶ added in v0.7.0
func (m *SendRequest) UnmarshalVT(dAtA []byte) error
type StreamCommandDecoder ¶ added in v0.8.10
type StreamCommandDecoder interface {
// Decode returns the next Command from the stream together with the number
// of bytes attributed to it, or an error. It returns io.EOF when the stream
// is over and ErrMessageTooLarge if the command exceeds the configured
// message size limit.
Decode() (*Command, int, error)
// Reset makes the decoder read from the given reader, applying the given
// message size limit. It is used internally to reuse a pooled decoder;
// obtain a decoder via GetStreamCommandDecoderLimited, which enforces a
// positive limit, rather than resetting one with a non-positive limit.
Reset(reader io.Reader, messageSizeLimit int64)
}
StreamCommandDecoder decodes commands from an io.Reader. Unlike CommandDecoder, which works on a frame already read into memory, it's meant for streaming transports where commands arrive one after another and the size of an individual command must be bounded.
A StreamCommandDecoder is not safe for concurrent use. Use GetStreamCommandDecoderLimited and PutStreamCommandDecoder to take one from a pool and return it back when done.
func GetStreamCommandDecoderLimited ¶ added in v0.14.0
func GetStreamCommandDecoderLimited(protoType Type, reader io.Reader, messageSizeLimit int64) StreamCommandDecoder
GetStreamCommandDecoderLimited returns a StreamCommandDecoder for the given protocol type, taking it from a pool and resetting it to read commands from reader. Return it with PutStreamCommandDecoder once the stream is processed.
Commands larger than messageSizeLimit bytes are rejected with ErrMessageTooLarge. messageSizeLimit must be positive - a zero or negative limit panics, since an unbounded decoder over untrusted input can be driven to allocate arbitrary memory by a single frame. Any type other than TypeJSON is treated as TypeProtobuf.
type StreamPosition ¶ added in v0.6.0
type StreamPosition struct {
Offset uint64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"`
Epoch string `protobuf:"bytes,2,opt,name=epoch,proto3" json:"epoch,omitempty"`
// contains filtered or unexported fields
}
func (*StreamPosition) Descriptor
deprecated
added in
v0.6.0
func (*StreamPosition) Descriptor() ([]byte, []int)
Deprecated: Use StreamPosition.ProtoReflect.Descriptor instead.
func (*StreamPosition) GetEpoch ¶ added in v0.6.0
func (x *StreamPosition) GetEpoch() string
func (*StreamPosition) GetOffset ¶ added in v0.6.0
func (x *StreamPosition) GetOffset() uint64
func (StreamPosition) MarshalEasyJSON ¶ added in v0.6.0
func (v StreamPosition) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*StreamPosition) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *StreamPosition) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*StreamPosition) MarshalToVT ¶ added in v0.7.0
func (m *StreamPosition) MarshalToVT(dAtA []byte) (int, error)
func (*StreamPosition) MarshalVT ¶ added in v0.7.0
func (m *StreamPosition) MarshalVT() (dAtA []byte, err error)
func (*StreamPosition) ProtoMessage ¶ added in v0.6.0
func (*StreamPosition) ProtoMessage()
func (*StreamPosition) ProtoReflect ¶ added in v0.7.0
func (x *StreamPosition) ProtoReflect() protoreflect.Message
func (*StreamPosition) Reset ¶ added in v0.6.0
func (x *StreamPosition) Reset()
func (*StreamPosition) SizeVT ¶ added in v0.7.0
func (m *StreamPosition) SizeVT() (n int)
func (*StreamPosition) String ¶ added in v0.6.0
func (x *StreamPosition) String() string
func (*StreamPosition) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *StreamPosition) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*StreamPosition) UnmarshalVT ¶ added in v0.7.0
func (m *StreamPosition) UnmarshalVT(dAtA []byte) error
type SubRefreshRequest ¶
type SubRefreshRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
Type int32 `protobuf:"varint,3,opt,name=type,proto3" json:"type,omitempty"` // 0=sub_refresh, 1=track, 2=untrack
Track []*TrackBatch `protobuf:"bytes,4,rep,name=track,proto3" json:"track,omitempty"` // for type=1
Untrack []string `protobuf:"bytes,5,rep,name=untrack,proto3" json:"untrack,omitempty"` // for type=2
// contains filtered or unexported fields
}
func (*SubRefreshRequest) Descriptor
deprecated
func (*SubRefreshRequest) Descriptor() ([]byte, []int)
Deprecated: Use SubRefreshRequest.ProtoReflect.Descriptor instead.
func (*SubRefreshRequest) GetChannel ¶
func (x *SubRefreshRequest) GetChannel() string
func (*SubRefreshRequest) GetToken ¶
func (x *SubRefreshRequest) GetToken() string
func (*SubRefreshRequest) GetTrack ¶ added in v0.19.1
func (x *SubRefreshRequest) GetTrack() []*TrackBatch
func (*SubRefreshRequest) GetType ¶ added in v0.19.0
func (x *SubRefreshRequest) GetType() int32
func (*SubRefreshRequest) GetUntrack ¶ added in v0.19.1
func (x *SubRefreshRequest) GetUntrack() []string
func (SubRefreshRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v SubRefreshRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*SubRefreshRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *SubRefreshRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*SubRefreshRequest) MarshalToVT ¶ added in v0.7.0
func (m *SubRefreshRequest) MarshalToVT(dAtA []byte) (int, error)
func (*SubRefreshRequest) MarshalVT ¶ added in v0.7.0
func (m *SubRefreshRequest) MarshalVT() (dAtA []byte, err error)
func (*SubRefreshRequest) ProtoMessage ¶
func (*SubRefreshRequest) ProtoMessage()
func (*SubRefreshRequest) ProtoReflect ¶ added in v0.7.0
func (x *SubRefreshRequest) ProtoReflect() protoreflect.Message
func (*SubRefreshRequest) Reset ¶
func (x *SubRefreshRequest) Reset()
func (*SubRefreshRequest) SizeVT ¶ added in v0.7.0
func (m *SubRefreshRequest) SizeVT() (n int)
func (*SubRefreshRequest) String ¶
func (x *SubRefreshRequest) String() string
func (*SubRefreshRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *SubRefreshRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*SubRefreshRequest) UnmarshalVT ¶ added in v0.7.0
func (m *SubRefreshRequest) UnmarshalVT(dAtA []byte) error
type SubRefreshResult ¶
type SubRefreshResult struct {
Expires bool `protobuf:"varint,1,opt,name=expires,proto3" json:"expires,omitempty"`
Ttl uint32 `protobuf:"varint,2,opt,name=ttl,proto3" json:"ttl,omitempty"` // for type=0: token TTL. for type=1: MIN TTL across all batches.
Items []*Publication `protobuf:"bytes,3,rep,name=items,proto3" json:"items,omitempty"`
// contains filtered or unexported fields
}
func (*SubRefreshResult) Descriptor
deprecated
func (*SubRefreshResult) Descriptor() ([]byte, []int)
Deprecated: Use SubRefreshResult.ProtoReflect.Descriptor instead.
func (*SubRefreshResult) GetExpires ¶
func (x *SubRefreshResult) GetExpires() bool
func (*SubRefreshResult) GetItems ¶ added in v0.19.0
func (x *SubRefreshResult) GetItems() []*Publication
func (*SubRefreshResult) GetTtl ¶ added in v0.4.1
func (x *SubRefreshResult) GetTtl() uint32
func (SubRefreshResult) MarshalEasyJSON ¶ added in v0.6.0
func (v SubRefreshResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*SubRefreshResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *SubRefreshResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*SubRefreshResult) MarshalToVT ¶ added in v0.7.0
func (m *SubRefreshResult) MarshalToVT(dAtA []byte) (int, error)
func (*SubRefreshResult) MarshalVT ¶ added in v0.7.0
func (m *SubRefreshResult) MarshalVT() (dAtA []byte, err error)
func (*SubRefreshResult) ProtoMessage ¶
func (*SubRefreshResult) ProtoMessage()
func (*SubRefreshResult) ProtoReflect ¶ added in v0.7.0
func (x *SubRefreshResult) ProtoReflect() protoreflect.Message
func (*SubRefreshResult) Reset ¶
func (x *SubRefreshResult) Reset()
func (*SubRefreshResult) SizeVT ¶ added in v0.7.0
func (m *SubRefreshResult) SizeVT() (n int)
func (*SubRefreshResult) String ¶
func (x *SubRefreshResult) String() string
func (*SubRefreshResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *SubRefreshResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*SubRefreshResult) UnmarshalVT ¶ added in v0.7.0
func (m *SubRefreshResult) UnmarshalVT(dAtA []byte) error
type Subscribe ¶ added in v0.4.0
type Subscribe struct {
Recoverable bool `protobuf:"varint,1,opt,name=recoverable,proto3" json:"recoverable,omitempty"`
Epoch string `protobuf:"bytes,4,opt,name=epoch,proto3" json:"epoch,omitempty"`
Offset uint64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
Positioned bool `protobuf:"varint,6,opt,name=positioned,proto3" json:"positioned,omitempty"`
Data Raw `protobuf:"bytes,7,opt,name=data,proto3" json:"data,omitempty"`
// contains filtered or unexported fields
}
Subscribe to channel, used for server-side subscriptions.
func (*Subscribe) Descriptor
deprecated
added in
v0.4.0
func (*Subscribe) GetPositioned ¶ added in v0.4.0
func (*Subscribe) GetRecoverable ¶ added in v0.4.0
func (Subscribe) MarshalEasyJSON ¶ added in v0.6.0
func (v Subscribe) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Subscribe) MarshalToSizedBufferVT ¶ added in v0.7.0
func (*Subscribe) MarshalToVT ¶ added in v0.7.0
func (*Subscribe) ProtoMessage ¶ added in v0.4.0
func (*Subscribe) ProtoMessage()
func (*Subscribe) ProtoReflect ¶ added in v0.7.0
func (x *Subscribe) ProtoReflect() protoreflect.Message
func (*Subscribe) UnmarshalEasyJSON ¶ added in v0.6.0
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Subscribe) UnmarshalVT ¶ added in v0.7.0
type SubscribeRequest ¶
type SubscribeRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
Recover bool `protobuf:"varint,3,opt,name=recover,proto3" json:"recover,omitempty"`
Epoch string `protobuf:"bytes,6,opt,name=epoch,proto3" json:"epoch,omitempty"`
Offset uint64 `protobuf:"varint,7,opt,name=offset,proto3" json:"offset,omitempty"`
Data Raw `protobuf:"bytes,8,opt,name=data,proto3" json:"data,omitempty"`
Positioned bool `protobuf:"varint,9,opt,name=positioned,proto3" json:"positioned,omitempty"`
Recoverable bool `protobuf:"varint,10,opt,name=recoverable,proto3" json:"recoverable,omitempty"`
JoinLeave bool `protobuf:"varint,11,opt,name=join_leave,json=joinLeave,proto3" json:"join_leave,omitempty"`
Delta string `protobuf:"bytes,12,opt,name=delta,proto3" json:"delta,omitempty"`
Tf *FilterNode `protobuf:"bytes,13,opt,name=tf,proto3" json:"tf,omitempty"` // Optional server side filter based on publication tags .
Flag int64 `protobuf:"varint,14,opt,name=flag,proto3" json:"flag,omitempty"` // Enable subscription level features.
Type int32 `protobuf:"varint,15,opt,name=type,proto3" json:"type,omitempty"`
Phase int32 `protobuf:"varint,16,opt,name=phase,proto3" json:"phase,omitempty"`
Cursor string `protobuf:"bytes,17,opt,name=cursor,proto3" json:"cursor,omitempty"`
Limit int32 `protobuf:"varint,18,opt,name=limit,proto3" json:"limit,omitempty"`
Asc bool `protobuf:"varint,19,opt,name=asc,proto3" json:"asc,omitempty"`
// contains filtered or unexported fields
}
func (*SubscribeRequest) Descriptor
deprecated
func (*SubscribeRequest) Descriptor() ([]byte, []int)
Deprecated: Use SubscribeRequest.ProtoReflect.Descriptor instead.
func (*SubscribeRequest) GetAsc ¶ added in v0.19.0
func (x *SubscribeRequest) GetAsc() bool
func (*SubscribeRequest) GetChannel ¶
func (x *SubscribeRequest) GetChannel() string
func (*SubscribeRequest) GetCursor ¶ added in v0.19.0
func (x *SubscribeRequest) GetCursor() string
func (*SubscribeRequest) GetData ¶ added in v0.7.6
func (x *SubscribeRequest) GetData() []byte
func (*SubscribeRequest) GetDelta ¶ added in v0.13.0
func (x *SubscribeRequest) GetDelta() string
func (*SubscribeRequest) GetEpoch ¶
func (x *SubscribeRequest) GetEpoch() string
func (*SubscribeRequest) GetFlag ¶ added in v0.17.0
func (x *SubscribeRequest) GetFlag() int64
func (*SubscribeRequest) GetJoinLeave ¶ added in v0.8.9
func (x *SubscribeRequest) GetJoinLeave() bool
func (*SubscribeRequest) GetLimit ¶ added in v0.19.0
func (x *SubscribeRequest) GetLimit() int32
func (*SubscribeRequest) GetOffset ¶
func (x *SubscribeRequest) GetOffset() uint64
func (*SubscribeRequest) GetPhase ¶ added in v0.19.0
func (x *SubscribeRequest) GetPhase() int32
func (*SubscribeRequest) GetPositioned ¶ added in v0.8.7
func (x *SubscribeRequest) GetPositioned() bool
func (*SubscribeRequest) GetRecover ¶
func (x *SubscribeRequest) GetRecover() bool
func (*SubscribeRequest) GetRecoverable ¶ added in v0.8.7
func (x *SubscribeRequest) GetRecoverable() bool
func (*SubscribeRequest) GetTf ¶ added in v0.17.0
func (x *SubscribeRequest) GetTf() *FilterNode
func (*SubscribeRequest) GetToken ¶
func (x *SubscribeRequest) GetToken() string
func (*SubscribeRequest) GetType ¶ added in v0.19.0
func (x *SubscribeRequest) GetType() int32
func (SubscribeRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v SubscribeRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*SubscribeRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *SubscribeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*SubscribeRequest) MarshalToVT ¶ added in v0.7.0
func (m *SubscribeRequest) MarshalToVT(dAtA []byte) (int, error)
func (*SubscribeRequest) MarshalVT ¶ added in v0.7.0
func (m *SubscribeRequest) MarshalVT() (dAtA []byte, err error)
func (*SubscribeRequest) ProtoMessage ¶
func (*SubscribeRequest) ProtoMessage()
func (*SubscribeRequest) ProtoReflect ¶ added in v0.7.0
func (x *SubscribeRequest) ProtoReflect() protoreflect.Message
func (*SubscribeRequest) Reset ¶
func (x *SubscribeRequest) Reset()
func (*SubscribeRequest) SizeVT ¶ added in v0.7.0
func (m *SubscribeRequest) SizeVT() (n int)
func (*SubscribeRequest) String ¶
func (x *SubscribeRequest) String() string
func (*SubscribeRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *SubscribeRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*SubscribeRequest) UnmarshalVT ¶ added in v0.7.0
func (m *SubscribeRequest) UnmarshalVT(dAtA []byte) error
type SubscribeResult ¶
type SubscribeResult struct {
Expires bool `protobuf:"varint,1,opt,name=expires,proto3" json:"expires,omitempty"`
Ttl uint32 `protobuf:"varint,2,opt,name=ttl,proto3" json:"ttl,omitempty"`
Recoverable bool `protobuf:"varint,3,opt,name=recoverable,proto3" json:"recoverable,omitempty"`
Epoch string `protobuf:"bytes,6,opt,name=epoch,proto3" json:"epoch,omitempty"`
Publications []*Publication `protobuf:"bytes,7,rep,name=publications,proto3" json:"publications,omitempty"`
Recovered bool `protobuf:"varint,8,opt,name=recovered,proto3" json:"recovered,omitempty"`
Offset uint64 `protobuf:"varint,9,opt,name=offset,proto3" json:"offset,omitempty"`
Positioned bool `protobuf:"varint,10,opt,name=positioned,proto3" json:"positioned,omitempty"`
Data Raw `protobuf:"bytes,11,opt,name=data,proto3" json:"data,omitempty"`
WasRecovering bool `protobuf:"varint,12,opt,name=was_recovering,json=wasRecovering,proto3" json:"was_recovering,omitempty"`
Delta bool `protobuf:"varint,13,opt,name=delta,proto3" json:"delta,omitempty"`
Id int64 `protobuf:"varint,14,opt,name=id,proto3" json:"id,omitempty"` // Optional numeric channel ID to avoid sending string channel in the following Pushes (bandwidth optimization).
Type int32 `protobuf:"varint,15,opt,name=type,proto3" json:"type,omitempty"` // Server must echo back type.
Phase int32 `protobuf:"varint,16,opt,name=phase,proto3" json:"phase,omitempty"` // The result phase of the operation (LIVE = 0, STREAM = 1, STATE = 2)
Cursor string `protobuf:"bytes,17,opt,name=cursor,proto3" json:"cursor,omitempty"` // Next page cursor (empty = last page)
State []*Publication `protobuf:"bytes,18,rep,name=state,proto3" json:"state,omitempty"` // Channel state entries.
PublishDebounce uint32 `protobuf:"varint,19,opt,name=publish_debounce,json=publishDebounce,proto3" json:"publish_debounce,omitempty"` // in ms, if >0 SDK should debounce publications to this channel. First one should not be debounced.
// contains filtered or unexported fields
}
func (*SubscribeResult) Descriptor
deprecated
func (*SubscribeResult) Descriptor() ([]byte, []int)
Deprecated: Use SubscribeResult.ProtoReflect.Descriptor instead.
func (*SubscribeResult) GetCursor ¶ added in v0.19.0
func (x *SubscribeResult) GetCursor() string
func (*SubscribeResult) GetData ¶ added in v0.7.0
func (x *SubscribeResult) GetData() []byte
func (*SubscribeResult) GetDelta ¶ added in v0.13.0
func (x *SubscribeResult) GetDelta() bool
func (*SubscribeResult) GetEpoch ¶
func (x *SubscribeResult) GetEpoch() string
func (*SubscribeResult) GetExpires ¶
func (x *SubscribeResult) GetExpires() bool
func (*SubscribeResult) GetId ¶ added in v0.17.0
func (x *SubscribeResult) GetId() int64
func (*SubscribeResult) GetOffset ¶
func (x *SubscribeResult) GetOffset() uint64
func (*SubscribeResult) GetPhase ¶ added in v0.19.0
func (x *SubscribeResult) GetPhase() int32
func (*SubscribeResult) GetPositioned ¶ added in v0.3.5
func (x *SubscribeResult) GetPositioned() bool
func (*SubscribeResult) GetPublications ¶
func (x *SubscribeResult) GetPublications() []*Publication
func (*SubscribeResult) GetPublishDebounce ¶ added in v0.19.0
func (x *SubscribeResult) GetPublishDebounce() uint32
func (*SubscribeResult) GetRecoverable ¶
func (x *SubscribeResult) GetRecoverable() bool
func (*SubscribeResult) GetRecovered ¶
func (x *SubscribeResult) GetRecovered() bool
func (*SubscribeResult) GetState ¶ added in v0.19.0
func (x *SubscribeResult) GetState() []*Publication
func (*SubscribeResult) GetTtl ¶ added in v0.4.1
func (x *SubscribeResult) GetTtl() uint32
func (*SubscribeResult) GetType ¶ added in v0.19.0
func (x *SubscribeResult) GetType() int32
func (*SubscribeResult) GetWasRecovering ¶ added in v0.8.5
func (x *SubscribeResult) GetWasRecovering() bool
func (SubscribeResult) MarshalEasyJSON ¶ added in v0.6.0
func (v SubscribeResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*SubscribeResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *SubscribeResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*SubscribeResult) MarshalToVT ¶ added in v0.7.0
func (m *SubscribeResult) MarshalToVT(dAtA []byte) (int, error)
func (*SubscribeResult) MarshalVT ¶ added in v0.7.0
func (m *SubscribeResult) MarshalVT() (dAtA []byte, err error)
func (*SubscribeResult) ProtoMessage ¶
func (*SubscribeResult) ProtoMessage()
func (*SubscribeResult) ProtoReflect ¶ added in v0.7.0
func (x *SubscribeResult) ProtoReflect() protoreflect.Message
func (*SubscribeResult) Reset ¶
func (x *SubscribeResult) Reset()
func (*SubscribeResult) SizeVT ¶ added in v0.7.0
func (m *SubscribeResult) SizeVT() (n int)
func (*SubscribeResult) String ¶
func (x *SubscribeResult) String() string
func (*SubscribeResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *SubscribeResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*SubscribeResult) UnmarshalVT ¶ added in v0.7.0
func (m *SubscribeResult) UnmarshalVT(dAtA []byte) error
type TrackBatch ¶ added in v0.19.1
type TrackBatch struct {
Signature string `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` // HMAC over (iat, expiry, user, channel, keys)
Items []*KeyedItem `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` // FULL key set the signature was computed over;
// contains filtered or unexported fields
}
func (*TrackBatch) Descriptor
deprecated
added in
v0.19.1
func (*TrackBatch) Descriptor() ([]byte, []int)
Deprecated: Use TrackBatch.ProtoReflect.Descriptor instead.
func (*TrackBatch) GetItems ¶ added in v0.19.1
func (x *TrackBatch) GetItems() []*KeyedItem
func (*TrackBatch) GetSignature ¶ added in v0.19.1
func (x *TrackBatch) GetSignature() string
func (TrackBatch) MarshalEasyJSON ¶ added in v0.19.1
func (v TrackBatch) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*TrackBatch) MarshalToSizedBufferVT ¶ added in v0.19.1
func (m *TrackBatch) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*TrackBatch) MarshalToVT ¶ added in v0.19.1
func (m *TrackBatch) MarshalToVT(dAtA []byte) (int, error)
func (*TrackBatch) MarshalVT ¶ added in v0.19.1
func (m *TrackBatch) MarshalVT() (dAtA []byte, err error)
func (*TrackBatch) ProtoMessage ¶ added in v0.19.1
func (*TrackBatch) ProtoMessage()
func (*TrackBatch) ProtoReflect ¶ added in v0.19.1
func (x *TrackBatch) ProtoReflect() protoreflect.Message
func (*TrackBatch) Reset ¶ added in v0.19.1
func (x *TrackBatch) Reset()
func (*TrackBatch) SizeVT ¶ added in v0.19.1
func (m *TrackBatch) SizeVT() (n int)
func (*TrackBatch) String ¶ added in v0.19.1
func (x *TrackBatch) String() string
func (*TrackBatch) UnmarshalEasyJSON ¶ added in v0.19.1
func (v *TrackBatch) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*TrackBatch) UnmarshalVT ¶ added in v0.19.1
func (m *TrackBatch) UnmarshalVT(dAtA []byte) error
type Unsubscribe ¶ added in v0.4.0
type Unsubscribe struct {
Code uint32 `protobuf:"varint,2,opt,name=code,proto3" json:"code,omitempty"`
Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
// contains filtered or unexported fields
}
Unsubscribe from channel.
func (*Unsubscribe) Descriptor
deprecated
added in
v0.4.0
func (*Unsubscribe) Descriptor() ([]byte, []int)
Deprecated: Use Unsubscribe.ProtoReflect.Descriptor instead.
func (*Unsubscribe) GetCode ¶ added in v0.8.5
func (x *Unsubscribe) GetCode() uint32
func (*Unsubscribe) GetReason ¶ added in v0.8.7
func (x *Unsubscribe) GetReason() string
func (Unsubscribe) MarshalEasyJSON ¶ added in v0.6.0
func (v Unsubscribe) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*Unsubscribe) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *Unsubscribe) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*Unsubscribe) MarshalToVT ¶ added in v0.7.0
func (m *Unsubscribe) MarshalToVT(dAtA []byte) (int, error)
func (*Unsubscribe) MarshalVT ¶ added in v0.7.0
func (m *Unsubscribe) MarshalVT() (dAtA []byte, err error)
func (*Unsubscribe) ProtoMessage ¶ added in v0.4.0
func (*Unsubscribe) ProtoMessage()
func (*Unsubscribe) ProtoReflect ¶ added in v0.7.0
func (x *Unsubscribe) ProtoReflect() protoreflect.Message
func (*Unsubscribe) Reset ¶ added in v0.4.0
func (x *Unsubscribe) Reset()
func (*Unsubscribe) SizeVT ¶ added in v0.7.0
func (m *Unsubscribe) SizeVT() (n int)
func (*Unsubscribe) String ¶ added in v0.4.0
func (x *Unsubscribe) String() string
func (*Unsubscribe) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *Unsubscribe) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*Unsubscribe) UnmarshalVT ¶ added in v0.7.0
func (m *Unsubscribe) UnmarshalVT(dAtA []byte) error
type UnsubscribeRequest ¶
type UnsubscribeRequest struct {
Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"`
// contains filtered or unexported fields
}
func (*UnsubscribeRequest) Descriptor
deprecated
func (*UnsubscribeRequest) Descriptor() ([]byte, []int)
Deprecated: Use UnsubscribeRequest.ProtoReflect.Descriptor instead.
func (*UnsubscribeRequest) GetChannel ¶
func (x *UnsubscribeRequest) GetChannel() string
func (UnsubscribeRequest) MarshalEasyJSON ¶ added in v0.6.0
func (v UnsubscribeRequest) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*UnsubscribeRequest) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *UnsubscribeRequest) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*UnsubscribeRequest) MarshalToVT ¶ added in v0.7.0
func (m *UnsubscribeRequest) MarshalToVT(dAtA []byte) (int, error)
func (*UnsubscribeRequest) MarshalVT ¶ added in v0.7.0
func (m *UnsubscribeRequest) MarshalVT() (dAtA []byte, err error)
func (*UnsubscribeRequest) ProtoMessage ¶
func (*UnsubscribeRequest) ProtoMessage()
func (*UnsubscribeRequest) ProtoReflect ¶ added in v0.7.0
func (x *UnsubscribeRequest) ProtoReflect() protoreflect.Message
func (*UnsubscribeRequest) Reset ¶
func (x *UnsubscribeRequest) Reset()
func (*UnsubscribeRequest) SizeVT ¶ added in v0.7.0
func (m *UnsubscribeRequest) SizeVT() (n int)
func (*UnsubscribeRequest) String ¶
func (x *UnsubscribeRequest) String() string
func (*UnsubscribeRequest) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *UnsubscribeRequest) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*UnsubscribeRequest) UnmarshalVT ¶ added in v0.7.0
func (m *UnsubscribeRequest) UnmarshalVT(dAtA []byte) error
type UnsubscribeResult ¶
type UnsubscribeResult struct {
// contains filtered or unexported fields
}
func (*UnsubscribeResult) Descriptor
deprecated
func (*UnsubscribeResult) Descriptor() ([]byte, []int)
Deprecated: Use UnsubscribeResult.ProtoReflect.Descriptor instead.
func (UnsubscribeResult) MarshalEasyJSON ¶ added in v0.6.0
func (v UnsubscribeResult) MarshalEasyJSON(w *writer)
MarshalEasyJSON supports easyjson.Marshaler interface
func (*UnsubscribeResult) MarshalToSizedBufferVT ¶ added in v0.7.0
func (m *UnsubscribeResult) MarshalToSizedBufferVT(dAtA []byte) (int, error)
func (*UnsubscribeResult) MarshalToVT ¶ added in v0.7.0
func (m *UnsubscribeResult) MarshalToVT(dAtA []byte) (int, error)
func (*UnsubscribeResult) MarshalVT ¶ added in v0.7.0
func (m *UnsubscribeResult) MarshalVT() (dAtA []byte, err error)
func (*UnsubscribeResult) ProtoMessage ¶
func (*UnsubscribeResult) ProtoMessage()
func (*UnsubscribeResult) ProtoReflect ¶ added in v0.7.0
func (x *UnsubscribeResult) ProtoReflect() protoreflect.Message
func (*UnsubscribeResult) Reset ¶
func (x *UnsubscribeResult) Reset()
func (*UnsubscribeResult) SizeVT ¶ added in v0.7.0
func (m *UnsubscribeResult) SizeVT() (n int)
func (*UnsubscribeResult) String ¶
func (x *UnsubscribeResult) String() string
func (*UnsubscribeResult) UnmarshalEasyJSON ¶ added in v0.6.0
func (v *UnsubscribeResult) UnmarshalEasyJSON(l *jlexer.Lexer)
UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (*UnsubscribeResult) UnmarshalVT ¶ added in v0.7.0
func (m *UnsubscribeResult) UnmarshalVT(dAtA []byte) error