Documentation ¶
Index ¶
- Variables
- func IsInnerTopic(t Topic) bool
- func IsPublicTopic(t Topic) bool
- func IsSysTopic(t Topic) bool
- func MsgTypeName(m MsgType) string
- type Func
- type FuncBlank
- type FuncBool
- type FuncBytes
- type FuncDefault
- type FuncError
- type FuncInt
- type FuncString
- type FuncTransfer
- type MsgType
- type Publisher
- type Serializer
- func (ms *Serializer) Deserialize(websocketMessage []byte) (interface{}, error)
- func (ms *Serializer) GetMsgTopic(websocketMessage []byte) Topic
- func (ms *Serializer) GetMsgType(msg []byte) MsgType
- func (ms *Serializer) GetRandomID(msg []byte) uint32
- func (ms *Serializer) GetSourceID(msg []byte) uint32
- func (ms *Serializer) Prefix() []byte
- func (ms *Serializer) ResetRandomTag(msg []byte, randomTag int)
- func (ms *Serializer) ResetSourceID(msg []byte, sourceId int)
- func (ms *Serializer) Serialize(t Topic, data interface{}) ([]byte, error)
- type Subscriber
- type SubscriberList
- type Topic
Constants ¶
This section is empty.
Variables ¶
View Source
var ( PublicTopic = NewTopic("") // 用户保留主题 不会进行广播 InnerTopic = NewTopic("inner") // 系统保留主题 不会触发任何注册的回调函数 SysTopic = NewTopic("sys") )
View Source
var ( TopicBase = SysTopic.Child("base") // 日志 TopicSysLog = TopicBase.Child("log") // 连接权限验证 TopicAuth = TopicBase.Child("auth") )
View Source
var ( TopicTopic = SysTopic.Child("topic") // 订阅指令 TopicSubscribe = TopicTopic.Child("subscribe") // 取消订阅指令 TopicCancel = TopicTopic.Child("cancel") // 取消所有订阅指令 TopicCancelAll = TopicTopic.Child("cancel_all") // 敏感操作 需要通过判定 TopicSubscribeAll = TopicTopic.Child("subscribe_all/admin") TopicGetAllTopics = TopicTopic.Child("get_all_topics/admin") TopicGetAllNodes = TopicTopic.Child("get_all_nodes/admin") TopicStopNode = TopicTopic.Child("stop_node/admin") )
View Source
var ( TopicCluster = SysTopic.Child("cluster") // 三次同步过程建立节点连接 TopicClusterLateral = TopicCluster.Child("lateral") TopicClusterSuperior = TopicCluster.Child("superior") TopicClusterInfo = TopicCluster.Child("info") TopicClusterRedirect = TopicCluster.Child("redirect") )
View Source
var ( ErrNotAllowedTopic = errors.New("this topic is not allowed to subscribe or publish") ErrUnformedMsg = errors.New("unformed Msg") )
View Source
var DefaultMsgPrefix = []byte("ws")
View Source
var InvalidMessage = errors.New("invalid message")
View Source
var InvalidTopic = errors.New("invalid topic")
Functions ¶
func IsInnerTopic ¶
func IsPublicTopic ¶
func IsSysTopic ¶
func MsgTypeName ¶ added in v0.2.3
Types ¶
type Func ¶ added in v0.2.2
type Func interface{}
A callback which should receives one parameter of type string, int, bool or any valid JSON/Go struct
type FuncDefault ¶ added in v0.2.2
type FuncDefault = func(interface{})
type FuncString ¶ added in v0.2.2
type FuncString = func(string)
type FuncTransfer ¶ added in v0.2.3
type Publisher ¶ added in v0.2.4
type Publisher interface {
// Pub sends a message on a particular topic
Pub(interface{})
}
Publisher is the message manager
type Serializer ¶
type Serializer struct {
// contains filtered or unexported fields
}
func NewSerializer ¶
func NewSerializer(messagePrefix []byte) *Serializer
格式: prefix(n)type(1)random_tag(4)source_idx(4)target_topic;msg
func (*Serializer) Deserialize ¶
func (ms *Serializer) Deserialize(websocketMessage []byte) (interface{}, error)
deserialize deserializes a custom websocket message from the client such as prefix;topic;0;abc_msg Supported data types are: string, int, bool, bytes and JSON. 格式: prefix(n)type(1)random_tag(4)source_idx(4)target_topic;msg
func (*Serializer) GetMsgTopic ¶
func (ms *Serializer) GetMsgTopic(websocketMessage []byte) Topic
getWebsocketCustomEvent return empty string when the websocketMessage is native message 格式: prefix(n)type(1)random_tag(4)source_idx(4)target_topic;msg
func (*Serializer) GetMsgType ¶ added in v0.2.4
func (ms *Serializer) GetMsgType(msg []byte) MsgType
func (*Serializer) GetRandomID ¶ added in v0.2.4
func (ms *Serializer) GetRandomID(msg []byte) uint32
func (*Serializer) GetSourceID ¶ added in v0.2.4
func (ms *Serializer) GetSourceID(msg []byte) uint32
格式: prefix(n)type(1)random_tag(4)source_idx(4)target_topic;msg
func (*Serializer) Prefix ¶ added in v0.2.5
func (ms *Serializer) Prefix() []byte
func (*Serializer) ResetRandomTag ¶ added in v0.2.4
func (ms *Serializer) ResetRandomTag(msg []byte, randomTag int)
func (*Serializer) ResetSourceID ¶ added in v0.2.4
func (ms *Serializer) ResetSourceID(msg []byte, sourceId int)
type Subscriber ¶ added in v0.2.4
type SubscriberList ¶ added in v0.2.4
type SubscriberList interface { Add(callback Func) Subscriber Range(func(s Subscriber)) Len() int }
func NewSubscriberList ¶ added in v0.2.4
func NewSubscriberList() SubscriberList
Click to show internal directories.
Click to hide internal directories.