chat

package
v0.0.0-...-62da3de Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2019 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init

func Init(app *eudore.Eudore) error

Init 函数定义chat初始化内容。

Types

type Client

type Client struct {
	Conns []net.Conn
	// contains filtered or unexported fields
}

Client 定义一个用户客户端

func (*Client) Error

func (client *Client) Error(args ...interface{})

Error 方法输出Error级别日志。

func (*Client) Errorf

func (client *Client) Errorf(format string, args ...interface{})

Errorf 方法格式化输出Error级别日志。

func (*Client) HandleConn

func (client *Client) HandleConn(conn net.Conn)

HandleConn 方法使客户端处理一个连接。

func (*Client) Info

func (client *Client) Info(args ...interface{})

Info 方法输出Info级别日志。

func (*Client) Infof

func (client *Client) Infof(format string, args ...interface{})

Infof 方法格式化输出Info级别日志。

func (*Client) MarshalJSON

func (client *Client) MarshalJSON() ([]byte, error)

MarshalJSON 方法返回json序列化内容。

func (*Client) Remove

func (client *Client) Remove(conn net.Conn)

Remove 方法异常客户端的一个连接并关闭,如果客户端连接数量为零,则关闭客户端。

func (*Client) Run

func (client *Client) Run()

Run 方法启动一个客户端,处理发送文本消息和连接ping桢。

func (*Client) WriteJSON

func (client *Client) WriteJSON(v interface{}) error

WriteJSON 方法给客户端发送指定json。

func (*Client) WriteMessage

func (client *Client) WriteMessage(op ws.OpCode, p []byte) (err error)

WriteMessage 方法给客户端发送指定消息。

type Hub

type Hub struct {
	Clients map[int]*Client
	// contains filtered or unexported fields
}

Hub 定义客户端中心。

func (*Hub) AddMessage

func (hub *Hub) AddMessage(msg Message) error

AddMessage 方法使hub处理一个消息,数据库记录并发送给客户端。

func (*Hub) GetClient

func (hub *Hub) GetClient(userid int) *Client

GetClient 方法使hub根据userid创建一个客户端,如果存在返回存在的客户端。

func (*Hub) PutClient

func (hub *Hub) PutClient(client *Client)

PutClient 方法关闭一个客户端并回收。

type Message

type Message struct {
	Sendid  int       `json:"sendid"`
	Receid  int       `json:"receid"`
	Message string    `json:"message"`
	Time    time.Time `json:"time"`
}

Message 定义一条消息格式

type MessageController

type MessageController struct {
	Logger eudore.Logger
	Hub    *Hub

	controller.ControllerWebsite
	// contains filtered or unexported fields
}

MessageController 定义消息控制器。

func NewMessageController

func NewMessageController(app *eudore.App, db *sql.DB) *MessageController

NewMessageController 方法创建一个消息控制器。

func (*MessageController) GetConnect

func (ctl *MessageController) GetConnect() error

GetConnect 方法使控制器hub连接一个新的websocket连接。

func (*MessageController) GetList

func (ctl *MessageController) GetList() (interface{}, error)

GetList 方法返回用户最近100条消息。

func (*MessageController) GetListClients

func (ctl *MessageController) GetListClients() interface{}

GetListClients 方法返回全部客户端的消息。

func (*MessageController) GetListUsesr

func (ctl *MessageController) GetListUsesr() interface{}

GetListUsesr 方法返回全部用户id。

func (*MessageController) Init

func (ctl *MessageController) Init(ctx eudore.Context) error

Init 方法初始化消息控制器,检查用户id。

func (*MessageController) PutNew

func (ctl *MessageController) PutNew() error

PutNew 方法让用户发送一条消息。

Jump to

Keyboard shortcuts

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