65 lines
1.3 KiB
Go
65 lines
1.3 KiB
Go
package base
|
|
|
|
import (
|
|
"time"
|
|
|
|
"mongo.games.com/goserver/core/logger"
|
|
"mongo.games.com/goserver/core/module"
|
|
"mongo.games.com/goserver/core/netlib"
|
|
)
|
|
|
|
const (
|
|
// RobotSessionStartId 机器人session开始id
|
|
RobotSessionStartId = 100000000
|
|
)
|
|
|
|
var (
|
|
BenchMarkModule = &BenchMark{}
|
|
WaitConnectSessions []*netlib.SessionConfig
|
|
)
|
|
|
|
func NewSessionConfig() *netlib.SessionConfig {
|
|
BenchMarkModule.idx++
|
|
cfg := Config.Connects
|
|
cfg.Id = BenchMarkModule.idx
|
|
cfg.Init()
|
|
return &cfg
|
|
}
|
|
|
|
type BenchMark struct {
|
|
idx int
|
|
}
|
|
|
|
func (m *BenchMark) ModuleName() string {
|
|
return "benchmark-module"
|
|
}
|
|
|
|
func (m *BenchMark) Init() {
|
|
m.idx = RobotSessionStartId
|
|
for i := 0; i < Config.Count; i++ {
|
|
cfg := NewSessionConfig()
|
|
logger.Logger.Info("waite connect session id=", cfg.Id)
|
|
WaitConnectSessions = append(WaitConnectSessions, cfg)
|
|
}
|
|
}
|
|
|
|
// Update 机器开始连接游戏服务器
|
|
func (m *BenchMark) Update() {
|
|
n := len(WaitConnectSessions)
|
|
if n > 0 {
|
|
config := WaitConnectSessions[n-1]
|
|
WaitConnectSessions = WaitConnectSessions[:n-1]
|
|
if err := netlib.Connect(config); err != nil {
|
|
logger.Logger.Error("netlib.Connect error", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func (m *BenchMark) Shutdown() {
|
|
module.UnregisteModule(m)
|
|
}
|
|
|
|
func init() {
|
|
module.RegisteModule(BenchMarkModule, time.Millisecond, 1)
|
|
}
|