package logic

import (
	"context"
	"github.com/zeromicro/go-zero/core/logx"
)

var (
	//当前ws连接数
	currentWebsocketConnectCount = 0
	//添加or减少连接的控制chan
	websocketConnectCountCtlChan = make(chan int, 20)
)

// 累增计数
func increaseWebsocketConnectCount() {
	websocketConnectCountCtlChan <- 1
}

// 减少计数
func decreaseWebsocketConnectCount() {
	websocketConnectCountCtlChan <- -1
}

// 消费数据
func ConsumeWebsocketConnectCountCtlChanData(ctx context.Context) {
	defer func() {
		if err := recover(); err != nil {
			logx.Error("ConsumeWebsocketConnectCountCtlChanData panic:", err)
		}
	}()
	go func() {
		select {
		case <-ctx.Done():
			panic("ConsumeWebsocketConnectCountCtlChanData ctx deadline")
		}
	}()
	var num int
	for {
		select {
		case num = <-websocketConnectCountCtlChan:
			currentWebsocketConnectCount += num
			//logx.Info("当前websocket连接总数:", currentWebsocketConnectCount)
		}
	}
}