You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.2 KiB
49 lines
1.2 KiB
package gate
|
|
|
|
import (
|
|
"Open_IM/pkg/common/config"
|
|
"Open_IM/pkg/common/constant"
|
|
|
|
"Open_IM/pkg/statistics"
|
|
"fmt"
|
|
"sync"
|
|
|
|
promePkg "Open_IM/pkg/common/prometheus"
|
|
|
|
"github.com/go-playground/validator/v10"
|
|
)
|
|
|
|
var (
|
|
rwLock *sync.RWMutex
|
|
validate *validator.Validate
|
|
ws WServer
|
|
rpcSvr RPCServer
|
|
sendMsgAllCount uint64
|
|
sendMsgFailedCount uint64
|
|
sendMsgSuccessCount uint64
|
|
userCount uint64
|
|
|
|
sendMsgAllCountLock sync.RWMutex
|
|
)
|
|
|
|
func Init(rpcPort, wsPort int) {
|
|
rwLock = new(sync.RWMutex)
|
|
validate = validator.New()
|
|
statistics.NewStatistics(&sendMsgAllCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway sendMsgCount", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval)
|
|
statistics.NewStatistics(&userCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second add user conn", constant.StatisticsTimeInterval), constant.StatisticsTimeInterval)
|
|
ws.onInit(wsPort)
|
|
rpcSvr.onInit(rpcPort)
|
|
initPrometheus()
|
|
}
|
|
|
|
func Run(promethuesPort int) {
|
|
go ws.run()
|
|
go rpcSvr.run()
|
|
go func() {
|
|
err := promePkg.StartPromeSrv(promethuesPort)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}()
|
|
}
|