Documentation ¶
Overview ¶
Package websocket 处理
Package websocket 处理 ¶
Package websocket 处理 ¶
Package websocket 处理 ¶
Package websocket 处理 ¶
Package websocket 处理
Index ¶
- func AllSendMessages(appID uint32, userID string, data string)
- func CheckUserOnline(appID uint32, userID string) (online bool)
- func ClearTimeoutConnections()
- func GetAppIDs() []uint32
- func GetDefaultAppID() (appID uint32)
- func GetManagerInfo(isDebug string) (managerInfo map[string]interface{})
- func GetServer() (server *models.Server)
- func GetUserKey(appID uint32, userID string) (key string)
- func GetUserList(appID uint32) (userList []string)
- func HeartbeatController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})
- func InAppIDs(appID uint32) (inAppID bool)
- func IsLocal(server *models.Server) (isLocal bool)
- func LoginController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})
- func PingController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})
- func ProcessData(client *Client, message []byte)
- func Register(key string, value DisposeFunc)
- func SendUserMessage(appID uint32, userID string, msgID, message string) (sendResults bool, err error)
- func SendUserMessageAll(appID uint32, userID string, msgID, cmd, message string) (sendResults bool, err error)
- func SendUserMessageLocal(appID uint32, userID string, data string) (sendResults bool, err error)
- func StartWebSocket()
- func UserList(appID uint32) (userList []string)
- type Client
- func (c *Client) GetKey() (key string)
- func (c *Client) Heartbeat(currentTime uint64)
- func (c *Client) IsHeartbeatTimeout(currentTime uint64) (timeout bool)
- func (c *Client) IsLogin() (isLogin bool)
- func (c *Client) Login(appID uint32, userID string, loginTime uint64)
- func (c *Client) SendMsg(msg []byte)
- type ClientManager
- func (manager *ClientManager) AddClients(client *Client)
- func (manager *ClientManager) AddUsers(key string, client *Client)
- func (manager *ClientManager) ClientsRange(f func(client *Client, value bool) (result bool))
- func (manager *ClientManager) DelClients(client *Client)
- func (manager *ClientManager) DelUsers(client *Client) (result bool)
- func (manager *ClientManager) EventLogin(login *login)
- func (manager *ClientManager) EventRegister(client *Client)
- func (manager *ClientManager) EventUnregister(client *Client)
- func (manager *ClientManager) GetClients() (clients map[*Client]bool)
- func (manager *ClientManager) GetClientsLen() (clientsLen int)
- func (manager *ClientManager) GetUserClient(appID uint32, userID string) (client *Client)
- func (manager *ClientManager) GetUserClients() (clients []*Client)
- func (manager *ClientManager) GetUserKeys() (userKeys []string)
- func (manager *ClientManager) GetUserList(appID uint32) (userList []string)
- func (manager *ClientManager) GetUsersLen() (userLen int)
- func (manager *ClientManager) InClient(client *Client) (ok bool)
- type DisposeFunc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AllSendMessages ¶
AllSendMessages 全员广播
func CheckUserOnline ¶
CheckUserOnline 查询用户是否在线
func GetManagerInfo ¶
GetManagerInfo 获取管理者信息
func HeartbeatController ¶
func HeartbeatController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})
HeartbeatController 心跳接口
func LoginController ¶
func LoginController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})
LoginController 用户登录
func PingController ¶
func PingController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})
PingController ping
func SendUserMessage ¶
func SendUserMessage(appID uint32, userID string, msgID, message string) (sendResults bool, err error)
SendUserMessage 给用户发送消息
func SendUserMessageAll ¶
func SendUserMessageAll(appID uint32, userID string, msgID, cmd, message string) (sendResults bool, err error)
SendUserMessageAll 给全体用户发消息
func SendUserMessageLocal ¶
SendUserMessageLocal 给本机用户发送消息
Types ¶
type Client ¶
type Client struct { Addr string // 客户端地址 Socket *websocket.Conn // 用户连接 Send chan []byte // 待发送的数据 AppID uint32 // 登录的平台ID app/web/ios UserID string // 用户ID,用户登录以后才有 FirstTime uint64 // 首次连接事件 HeartbeatTime uint64 // 用户上次心跳时间 LoginTime uint64 // 登录时间 登录以后才有 }
Client 用户连接
func GetUserClient ¶
GetUserClient 获取用户所在的连接
func (*Client) IsHeartbeatTimeout ¶
IsHeartbeatTimeout 心跳超时
type ClientManager ¶
type ClientManager struct { Clients map[*Client]bool // 全部的连接 ClientsLock sync.RWMutex // 读写锁 Users map[string]*Client // 登录的用户 // appID+uuid UserLock sync.RWMutex // 读写锁 Register chan *Client // 连接连接处理 Login chan *login // 用户登录处理 Unregister chan *Client // 断开连接处理程序 Broadcast chan []byte // 广播 向全部成员发送数据 }
ClientManager 连接管理
func NewClientManager ¶
func NewClientManager() (clientManager *ClientManager)
NewClientManager 创建连接管理
func (*ClientManager) AddClients ¶
func (manager *ClientManager) AddClients(client *Client)
AddClients 添加客户端
func (*ClientManager) AddUsers ¶
func (manager *ClientManager) AddUsers(key string, client *Client)
AddUsers 添加用户
func (*ClientManager) ClientsRange ¶
func (manager *ClientManager) ClientsRange(f func(client *Client, value bool) (result bool))
ClientsRange 遍历
func (*ClientManager) DelClients ¶
func (manager *ClientManager) DelClients(client *Client)
DelClients 删除客户端
func (*ClientManager) DelUsers ¶
func (manager *ClientManager) DelUsers(client *Client) (result bool)
DelUsers 删除用户
func (*ClientManager) EventLogin ¶
func (manager *ClientManager) EventLogin(login *login)
EventLogin 用户登录
func (*ClientManager) EventRegister ¶
func (manager *ClientManager) EventRegister(client *Client)
EventRegister 用户建立连接事件
func (*ClientManager) EventUnregister ¶
func (manager *ClientManager) EventUnregister(client *Client)
EventUnregister 用户断开连接
func (*ClientManager) GetClients ¶
func (manager *ClientManager) GetClients() (clients map[*Client]bool)
GetClients 获取所有客户端
func (*ClientManager) GetClientsLen ¶
func (manager *ClientManager) GetClientsLen() (clientsLen int)
GetClientsLen GetClientsLen
func (*ClientManager) GetUserClient ¶
func (manager *ClientManager) GetUserClient(appID uint32, userID string) (client *Client)
GetUserClient 获取用户的连接
func (*ClientManager) GetUserClients ¶
func (manager *ClientManager) GetUserClients() (clients []*Client)
GetUserClients 获取用户的key
func (*ClientManager) GetUserKeys ¶
func (manager *ClientManager) GetUserKeys() (userKeys []string)
GetUserKeys 获取用户的key
func (*ClientManager) GetUserList ¶
func (manager *ClientManager) GetUserList(appID uint32) (userList []string)
GetUserList 获取用户 list
func (*ClientManager) GetUsersLen ¶
func (manager *ClientManager) GetUsersLen() (userLen int)
GetUsersLen GetClientsLen
func (*ClientManager) InClient ¶
func (manager *ClientManager) InClient(client *Client) (ok bool)