init.go 871 Bytes
package pool

import (
	"fmt"
	"github.com/go-redis/redis"
	"pool/dao/mq"
)

var wsSever *Server
var RabbitMQ *mq.RabbitMQ
var Redis *redis.Client

//连接池的结构体
type Server struct {
	hub    *hub
	ErrFun func(err interface{}) //用于接收ws连接池内代码运行时错误信息
}

//初始化执行连接池对象
//参数为接收连接池中运行时的一些错误信息的回调方法
func InitWsPool(errfun func(err interface{})) {
	wsSever = new(Server)
	wsSever.hub = newHub()
	wsSever.ErrFun = errfun
	go wsSever.hub.run() //开启服务
	//go wsSever.hub.ticker() //开启定时服务
	initWsPoolData()
}

func initWsPoolData() {
	clientsAll := GetAllList(cliKey)

	for _, v := range clientsAll {
		if v == "" {
			continue
		}
		client := new(Config)
		UnserislizeJson([]byte(v), client)
		NewClient(client)
	}
	fmt.Println(wsSever.hub.clients)
}