init.go 871 Bytes
Newer Older
haoyanbin's avatar
haoyanbin committed
1 2
package pool

haoyanbin's avatar
haoyanbin committed
3 4
import (
	"fmt"
haoyanbin's avatar
haoyanbin committed
5 6
	"github.com/go-redis/redis"
	"pool/dao/mq"
haoyanbin's avatar
haoyanbin committed
7 8
)

haoyanbin's avatar
haoyanbin committed
9
var wsSever *Server
haoyanbin's avatar
haoyanbin committed
10
var RabbitMQ *mq.RabbitMQ
haoyanbin's avatar
haoyanbin committed
11
var Redis *redis.Client
haoyanbin's avatar
haoyanbin committed
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

//连接池的结构体
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() //开启定时服务
haoyanbin's avatar
haoyanbin committed
27
	initWsPoolData()
haoyanbin's avatar
haoyanbin committed
28
}
haoyanbin's avatar
haoyanbin committed
29

haoyanbin's avatar
haoyanbin committed
30
func initWsPoolData() {
haoyanbin's avatar
1  
haoyanbin committed
31
	clientsAll := GetAllList(cliKey)
haoyanbin's avatar
haoyanbin committed
32 33 34 35 36 37 38 39 40 41 42

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