websocket

package
v2.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package websocket 处理

Package websocket 处理

Package websocket 处理

Package websocket 处理

Package websocket 处理

Package websocket 处理

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AllSendMessages

func AllSendMessages(appID uint32, userID string, data string)

AllSendMessages 全员广播

func CheckUserOnline

func CheckUserOnline(appID uint32, userID string) (online bool)

CheckUserOnline 查询用户是否在线

func ClearTimeoutConnections

func ClearTimeoutConnections()

ClearTimeoutConnections 定时清理超时连接

func GetAppIDs

func GetAppIDs() []uint32

GetAppIDs 所有平台

func GetDefaultAppID

func GetDefaultAppID() (appID uint32)

GetDefaultAppID 获取默认 appID

func GetManagerInfo

func GetManagerInfo(isDebug string) (managerInfo map[string]interface{})

GetManagerInfo 获取管理者信息

func GetServer

func GetServer() (server *models.Server)

GetServer 获取服务器

func GetUserKey

func GetUserKey(appID uint32, userID string) (key string)

GetUserKey 获取用户key

func GetUserList

func GetUserList(appID uint32) (userList []string)

GetUserList 获取全部用户

func HeartbeatController

func HeartbeatController(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})

HeartbeatController 心跳接口

func InAppIDs

func InAppIDs(appID uint32) (inAppID bool)

InAppIDs in app

func IsLocal

func IsLocal(server *models.Server) (isLocal bool)

IsLocal 判断是否为本机

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 ProcessData

func ProcessData(client *Client, message []byte)

ProcessData 处理数据

func Register

func Register(key string, value DisposeFunc)

Register 注册

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

func SendUserMessageLocal(appID uint32, userID string, data string) (sendResults bool, err error)

SendUserMessageLocal 给本机用户发送消息

func StartWebSocket

func StartWebSocket()

StartWebSocket 启动程序

func UserList

func UserList(appID uint32) (userList []string)

UserList 查询所有用户

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

func GetUserClient(appID uint32, userID string) (client *Client)

GetUserClient 获取用户所在的连接

func NewClient

func NewClient(addr string, socket *websocket.Conn, firstTime uint64) (client *Client)

NewClient 初始化

func (*Client) GetKey

func (c *Client) GetKey() (key string)

GetKey 获取 key

func (*Client) Heartbeat

func (c *Client) Heartbeat(currentTime uint64)

Heartbeat 用户心跳

func (*Client) IsHeartbeatTimeout

func (c *Client) IsHeartbeatTimeout(currentTime uint64) (timeout bool)

IsHeartbeatTimeout 心跳超时

func (*Client) IsLogin

func (c *Client) IsLogin() (isLogin bool)

IsLogin 是否登录了

func (*Client) Login

func (c *Client) Login(appID uint32, userID string, loginTime uint64)

Login 用户登录

func (*Client) SendMsg

func (c *Client) SendMsg(msg []byte)

SendMsg 发送数据

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)

type DisposeFunc

type DisposeFunc func(client *Client, seq string, message []byte) (code uint32, msg string, data interface{})

DisposeFunc 处理函数

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL