Documentation ¶
Index ¶
- Constants
- Variables
- func Context() *imctx.Context
- func GetPanicInfo() string
- func NsqConsumer(topic, channel string, handle func(message *nsq.Message) error, ...)
- func RecoverPanic()
- func StartNsqConsumer()
- type Codec
- type Conf
- type ConnContext
- func (c *ConnContext) DoConn()
- func (c *ConnContext) HandleConnect()
- func (c *ConnContext) HandlePackage(pack *Package)
- func (c *ConnContext) HandlePackageHeartbeat()
- func (c *ConnContext) HandlePackageMessageACK(pack *Package)
- func (c *ConnContext) HandlePackageMessageSend(pack *Package)
- func (c *ConnContext) HandlePackageSignIn(pack *Package)
- func (c *ConnContext) HandlePackageSyncTrigger(pack *Package)
- func (c *ConnContext) HandleReadErr(err error)
- func (c *ConnContext) Realease()
- type Package
- type TCPServer
Constants ¶
View Source
const ( TypeLen = 2 // 消息类型字节数组长度 LenLen = 2 // 消息长度字节数组长度 HeadLen = 4 // 消息头部字节数组长度(消息类型字节数组长度+消息长度字节数组长度) ContentMaxLen = 4092 // 消息体最大长度 BufLen = ContentMaxLen + 4 // 缓冲buffer字节数组长度 )
View Source
const ( ReadDeadline = 10 * time.Minute WriteDeadline = 10 * time.Second )
View Source
const ( CodeSignIn = 1 // 设备登录 CodeSignInACK = 2 // 设备登录回执 CodeSyncTrigger = 3 // 消息同步触发 CodeHeartbeat = 4 // 心跳 CodeHeartbeatACK = 5 // 心跳回执 CodeMessageSend = 6 // 消息发送 CodeMessageSendACK = 7 // 消息发送回执 CodeMessage = 8 // 消息投递 CodeMessageACK = 9 // 消息投递回执 )
消息协议
Variables ¶
View Source
var (
ErrNotEnough = errors.New("not enough")
)
View Source
var ErrOutOfSize = errors.New("package content out of size") // package的content字节数组过大
Functions ¶
func NsqConsumer ¶
NsqConsumer 消费消息
Types ¶
type Conf ¶
type Conf struct { Address string // 端口 MaxConnCount int // 最大连接数 AcceptCount int // 接收建立连接的goroutine数量 }
Conf server配置文件
type ConnContext ¶
type ConnContext struct { Codec *Codec // 编解码器 IsSignIn bool // 是否 DeviceId int64 // 设备id UserId int64 // 用户id }
ConnContext 连接上下文
func NewConnContext ¶
func NewConnContext(conn *net.TCPConn) *ConnContext
func (*ConnContext) HandlePackage ¶
func (c *ConnContext) HandlePackage(pack *Package)
HandlePackage 处理消息包
func (*ConnContext) HandlePackageHeartbeat ¶
func (c *ConnContext) HandlePackageHeartbeat()
HandlePackageHeadbeat 处理心跳包
func (*ConnContext) HandlePackageMessageACK ¶
func (c *ConnContext) HandlePackageMessageACK(pack *Package)
HandlePackageMessageACK 处理消息回执消息包
func (*ConnContext) HandlePackageMessageSend ¶
func (c *ConnContext) HandlePackageMessageSend(pack *Package)
HandlePackageMessageSend 处理消息发送包
func (*ConnContext) HandlePackageSignIn ¶
func (c *ConnContext) HandlePackageSignIn(pack *Package)
func (*ConnContext) HandlePackageSyncTrigger ¶
func (c *ConnContext) HandlePackageSyncTrigger(pack *Package)
HandlePackageSyncTrigger 处理同步触发消息包
func (*ConnContext) HandleReadErr ¶
func (c *ConnContext) HandleReadErr(err error)
HandleReadErr 读取conn错误
Click to show internal directories.
Click to hide internal directories.