ws

package
v0.0.0-...-33659cb Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2023 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func TestSendAll

func TestSendAll()

测试广播

func TestSendGroup

func TestSendGroup()

测试组广播

Types

type BroadCastMessageData

type BroadCastMessageData struct {
	Message []byte
}

广播发送数据信息

type Client

type Client struct {
	Id, Group string
	Socket    *websocket.Conn
	Message   chan []byte
	Codec     ICodec
	Router    IHandler
}

Client 单个 websocket 信息

func (*Client) Read

func (c *Client) Read()

读信息,从 websocket 连接直接读取数据

func (*Client) Write

func (c *Client) Write()

写信息,从 channel 变量 Send 中读取数据写入 websocket 连接

type GroupMessageData

type GroupMessageData struct {
	Group   string
	Message []byte
}

groupMessageData 组广播数据信息

type ICodec

type ICodec interface {

	// []byte -> struct
	Encode(b []byte) (int, any)

	// struct -> []byte
	Decode(t int, v any) []byte
}

type IHandler

type IHandler interface {
	Router(msg_t int, msg_obj any)
}

type Manager

type Manager struct {
	Group map[string]map[string]*Client

	Lock                 sync.Mutex
	Register, UnRegister chan *Client
	Message              chan *MessageData
	GroupMessage         chan *GroupMessageData
	BroadCastMessage     chan *BroadCastMessageData
	// contains filtered or unexported fields
}

Manager 所有 websocket 信息

var WebsocketManager *Manager

func New

func New(c ICodec, h IHandler) *Manager

初始化 wsManager 管理器

func (*Manager) Info

func (manager *Manager) Info() map[string]interface{}

获取 wsManager 管理器信息

func (*Manager) LenClient

func (manager *Manager) LenClient() uint

当前连接个数

func (*Manager) LenGroup

func (manager *Manager) LenGroup() uint

当前组个数

func (*Manager) RegisterClient

func (manager *Manager) RegisterClient(client *Client)

注册

func (*Manager) Send

func (manager *Manager) Send(id string, group string, message []byte)

向指定的 client 发送数据

func (*Manager) SendAll

func (manager *Manager) SendAll(message []byte)

广播

func (*Manager) SendAllService

func (manager *Manager) SendAllService()

处理广播数据

func (*Manager) SendGroup

func (manager *Manager) SendGroup(group string, message []byte)

向指定的 Group 广播

func (*Manager) SendGroupService

func (manager *Manager) SendGroupService()

处理 group 广播数据

func (*Manager) SendService

func (manager *Manager) SendService()

处理单个 client 发送数据

func (*Manager) Start

func (manager *Manager) Start()

启动 websocket 管理器

func (*Manager) UnRegisterClient

func (manager *Manager) UnRegisterClient(client *Client)

注销

func (*Manager) WsClient

func (manager *Manager) WsClient(ctx *gin.Context)

gin 处理 websocket handler

type MessageData

type MessageData struct {
	Id, Group string
	Message   []byte
}

messageData 单个发送数据信息

type WSClient

type WSClient struct {
	IP        string
	Port      int
	WSChannel string
	WSID      string
	// contains filtered or unexported fields
}

func NewWSClient

func NewWSClient(ip string, port int, wschannel string, wsid string, codec ICodec, handler IHandler) *WSClient

func (*WSClient) Connect

func (client *WSClient) Connect() error

func (*WSClient) Send

func (client *WSClient) Send(msg_t byte, v any) error

Jump to

Keyboard shortcuts

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