Documentation
¶
Index ¶
- Constants
- Variables
- func IsInnerTopic(t Topic) bool
- func IsPublicTopic(t Topic) bool
- func IsSysTopic(t Topic) bool
- func MsgTypeName(m MsgType) string
- func TypeofTopic(t Topic) string
- type Func
- type FuncBlank
- type FuncBool
- type FuncBytes
- type FuncDefault
- type FuncInt
- type FuncString
- type FuncTransfer
- type MsgType
- type Serializer
- func (ms *Serializer) AddSourceTopicItem(msg []byte, source_id string)
- func (ms *Serializer) Deserialize(websocketMessage []byte) (interface{}, MsgType, error)
- func (ms *Serializer) GetMsgTopic(websocketMessage []byte) Topic
- func (ms *Serializer) GetSourceTopic(msg []byte) Topic
- func (ms *Serializer) SeparateMessage(msg []byte) (target Topic, source Topic, tag string, typ MsgType, data []byte)
- func (ms *Serializer) Serialize(t Topic, data interface{}) ([]byte, error)
- type Topic
Constants ¶
const ( PublicTopic = "" // 用户保留主题 不会进行广播 InnerTopic = "inner" // 系统保留主题 不会触发任何注册的回调函数 SysTopic = "sys" )
Variables ¶
var ( // 订阅指令 TopicSubscribe = NewTopic("/sys/subscribe") // 取消订阅指令 TopicCancel = NewTopic("/sys/cancel") // 取消所有订阅指令 TopicCancelAll = NewTopic("/sys/cancel_all") // 敏感操作 仅来自127.0.0.1的节点通过判定 TopicSubscribeAll = NewTopic("/sys/admin/subscribe_all") TopicGetAllTopics = NewTopic("/sys/admin/get_all_topics") TopicGetAllNodes = NewTopic("/sys/admin/get_all_nodes") TopicStopNode = NewTopic("/sys/admin/stop_node") // 日志 TopicSysLog = NewTopic("/sys/log") // 连接权限验证 TopicAuth = NewTopic("/sys/auth") )
var ( ErrNotAllowedTopic = errors.New("this topic is not allowed to subscribe or publish") ErrUnformedMsg = errors.New("unformed Msg") )
var InvalidMessage = errors.New("invalid message")
var InvalidPrefix = errors.New("invalid prefix")
var InvalidTopic = errors.New("invalid topic")
Functions ¶
func IsInnerTopic ¶
func IsPublicTopic ¶
func IsSysTopic ¶
func MsgTypeName ¶ added in v0.2.3
func TypeofTopic ¶
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 Serializer ¶
type Serializer struct {
// contains filtered or unexported fields
}
func NewSerializer ¶
func NewSerializer(messagePrefix []byte) *Serializer
func (*Serializer) AddSourceTopicItem ¶ added in v0.2.3
func (ms *Serializer) AddSourceTopicItem(msg []byte, source_id string)
func (*Serializer) Deserialize ¶
func (ms *Serializer) Deserialize(websocketMessage []byte) (interface{}, MsgType, 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;target_topic;source_topic;random_tag;type;msg
func (*Serializer) GetMsgTopic ¶
func (ms *Serializer) GetMsgTopic(websocketMessage []byte) Topic
getWebsocketCustomEvent return empty string when the websocketMessage is native message 格式: prefix;target_topic;source_topic;random_tag;type;msg
func (*Serializer) GetSourceTopic ¶ added in v0.2.3
func (ms *Serializer) GetSourceTopic(msg []byte) Topic
func (*Serializer) SeparateMessage ¶ added in v0.2.3
func (*Serializer) Serialize ¶
func (ms *Serializer) Serialize(t Topic, data interface{}) ([]byte, error)
websocketMessageSerialize serializes a custom websocket message from websocketServer to be delivered to the client returns the string form of the message Supported data types are: string, int, bool, bytes and JSON. 格式: prefix;target_topic;source_topic;random_tag;type;msg