1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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)
}