feat(config): 添加RPC端口和游戏端口配置项

在配置结构体中新增了RPC端口和游戏端口字段,并更新了配置文件以支持多端口监听。同时,
调整了服务器端口选择逻辑,优先使用默认端口,不再生成随机端口。

refactor(server): 移除随机端口生成逻辑

删除了随机端口生成及相关依赖,端口选择改为从预定义列表中查找可用端口,提高端口分配的
可控性和稳定性。

fix(fight): 注释掉未实现的panic语句

为避免程序运行时因未实现逻辑导致崩溃,注释掉了Turn_Start和Fight_Start中的panic调用,
并添加了相关注释说明后续需实现的内容。

chore(config): 更新默认配置参数

更新了服务器地址、端口、数据库连接信息及Redis配置,确保开发环境配置正确。
```
This commit is contained in:
2025-10-08 16:54:03 +08:00
parent 864078f577
commit 485b22a3f7
6 changed files with 37 additions and 30 deletions

View File

@@ -9,7 +9,9 @@ type sConfig struct {
File *file `json:"file,omitempty"` // 文件上传配置 File *file `json:"file,omitempty"` // 文件上传配置
Name string `json:"name"` // 项目名称 Name string `json:"name"` // 项目名称
Port string `json:"port"` Port string `json:"port"`
PortBL uint16 `json:"port_bl"` PortBL uint16 `json:"port_bl"` //这个是命令行输入的参数
RPC uint16 //rpc端口
GamePort []uint64
} }
// OSS相关配置 // OSS相关配置
@@ -37,7 +39,9 @@ func newConfig() *sConfig {
Name: GetCfgWithDefault(ctx, "server.name", g.NewVar("")).String(), Name: GetCfgWithDefault(ctx, "server.name", g.NewVar("")).String(),
Eps: GetCfgWithDefault(ctx, "blazing.eps", g.NewVar(false)).Bool(), Eps: GetCfgWithDefault(ctx, "blazing.eps", g.NewVar(false)).Bool(),
Port: string(GetCfgWithDefault(ctx, "server.port", g.NewVar("8080")).String()), Port: string(GetCfgWithDefault(ctx, "server.port", g.NewVar("8080")).String()),
//PortBL: string(GetCfgWithDefault(ctx, "blazing.port", g.NewVar("8080")).String()), RPC: GetCfgWithDefault(ctx, "server.rpc", g.NewVar("8080")).Uint16(),
GamePort: GetCfgWithDefault(ctx, "server.game", g.NewVar("8080")).Uint64s(),
File: &file{ File: &file{
Mode: GetCfgWithDefault(ctx, "blazing.file.mode", g.NewVar("none")).String(), Mode: GetCfgWithDefault(ctx, "blazing.file.mode", g.NewVar("none")).String(),
Domain: GetCfgWithDefault(ctx, "blazing.file.domain", g.NewVar("http://127.0.0.1:8300")).String(), Domain: GetCfgWithDefault(ctx, "blazing.file.domain", g.NewVar("http://127.0.0.1:8300")).String(),

View File

@@ -10,9 +10,10 @@ import (
"net/http" "net/http"
"github.com/filecoin-project/go-jsonrpc" "github.com/filecoin-project/go-jsonrpc"
"github.com/gogf/gf/v2/util/gconv"
) )
const rpcport = ":40000" var rpcport = gconv.String(cool.Config.RPC)
var clientmap = make(map[uint16]*ClientHandler) //客户端map var clientmap = make(map[uint16]*ClientHandler) //客户端map
var clientidmap = make(map[uint16]uint16) //客户端map var clientidmap = make(map[uint16]uint16) //客户端map

View File

@@ -12,9 +12,7 @@ import (
"fmt" "fmt"
"log" "log"
"math/rand"
"net" "net"
"time"
"github.com/gogf/gf/v2/util/gconv" "github.com/gogf/gf/v2/util/gconv"
) )
@@ -26,28 +24,28 @@ const (
) )
var defaultPort = gconv.Int(cool.Config.Port) //读入默认的端口 var defaultPort = gconv.Int(cool.Config.Port) //读入默认的端口
var candidatePorts = []int{defaultPort}
// determinePort 确定服务器使用的端口 // determinePort 确定服务器使用的端口
func determinePort(serverid uint16) (int, error) { func determinePort(serverid uint16) (int, error) {
rand.Seed(time.Now().UnixNano()) // 服务器ID为0时使用默认端口
if serverid == 0 { if serverid == 0 {
return defaultPort, nil return defaultPort, nil
} }
// 尝试从指定端口列表中找可用端口最多尝试maxPortRetryCount轮
for i := 0; i < maxPortRetryCount; i++ { for i := 0; i < maxPortRetryCount; i++ {
port := generateRandomPort() // 遍历指定的端口列表
if isPortAvailable(port) { for _, port := range candidatePorts {
return port, nil if isPortAvailable(port) {
return port, nil
}
log.Printf("Port %d is not available, checking next...", port)
} }
log.Printf("Port %d is not available, retrying...", port) log.Printf("All candidate ports are in use, retrying round %d...", i+1)
} }
return 0, fmt.Errorf("failed to find available port after %d attempts", maxPortRetryCount) return 0, fmt.Errorf("failed to find available port after %d rounds of checking", maxPortRetryCount)
}
// generateRandomPort 生成指定范围内的随机端口
func generateRandomPort() int {
return minRandomPort + rand.Intn(maxRandomPort-minRandomPort)
} }
// isPortAvailable 检查端口是否可用 // isPortAvailable 检查端口是否可用

View File

@@ -10,7 +10,7 @@ func (e *EffectNode) Compare_Pre(fattack, sattack *action.SelectSkillAction) boo
return false return false
} }
func (e *EffectNode) Turn_Start(ctx input.Ctx) { func (e *EffectNode) Turn_Start(ctx input.Ctx) {
panic("not implemented") // TODO: Implement //panic("not implemented") // TODO: Implement
} }
func (e *EffectNode) Turn_End(ctx input.Ctx) { func (e *EffectNode) Turn_End(ctx input.Ctx) {

View File

@@ -5,7 +5,8 @@ import "blazing/logic/service/fight/input"
// 回合结束一次性effect清楚掉 // 回合结束一次性effect清楚掉
func (e *EffectNode) Fight_Start(ctx input.Ctx) bool { func (e *EffectNode) Fight_Start(ctx input.Ctx) bool {
panic("not implemented") // TODO: Implement //战斗开始应该注入魂印
//panic("not implemented") // TODO: Implement
} }
func (e *EffectNode) PreBattleEnd(ctx input.Ctx) bool { func (e *EffectNode) PreBattleEnd(ctx input.Ctx) bool {
panic("not implemented") // TODO: Implement panic("not implemented") // TODO: Implement

View File

@@ -1,14 +1,17 @@
server: server:
name: "blazing server" name: "blazing server"
address: ":8080" #前台服务器地址 address: ":59480" #前台服务器地址
port: 12345 port: 53388 #后台服务器端口
rpc: 56409 #rpc服务端口
game: [55407,50876,52482]
openapiPath: "/api.json" openapiPath: "/api.json"
swaggerPath: "/swagger" swaggerPath: "/swagger"
clientMaxBodySize: 104857600 # 100MB in bytes 100*1024*1024 clientMaxBodySize:
# 平滑重启特性 104857600 # 100MB in bytes 100*1024*1024
graceful: true # 是否开启平滑重启特性开启时将会在本地增加10000的本地TCP端口用于进程间通信默认false # 平滑重启特性
gracefulTimeout: 2 # 父进程在平滑重启后多少秒退出默认2秒若请求耗时大于该值可能会导致请求中断 graceful: true # 是否开启平滑重启特性开启时将会在本地增加10000的本地TCP端口用于进程间通信默认false
gracefulShutdownTimeout: 5 # 关闭Server时如果存在正在执行的HTTP请求Server等待多少秒才执行强行关闭 gracefulTimeout: 2 # 父进程在平滑重启后多少秒退出默认2秒若请求耗时大于该值可能会导致请求中断
gracefulShutdownTimeout: 5 # 关闭Server时如果存在正在执行的HTTP请求Server等待多少秒才执行强行关闭
logger: logger:
level: "all" level: "all"
stdout: true stdout: true
@@ -16,10 +19,10 @@ logger:
database: database:
default: default:
type: "pgsql" type: "pgsql"
host: "122.10.117.123" host: "125.208.20.223"
port: "5432" port: "55669"
user: "bl" user: "bl"
pass: "WYrM5ZYFnX7Y8PRC" pass: "4DD4z3T2Zh8rx8Yd"
name: "bl" name: "bl"
debug: true debug: true
timezone: "Asia/Shanghai" timezone: "Asia/Shanghai"
@@ -50,9 +53,9 @@ database:
# Redis 配置示例 # Redis 配置示例
redis: redis:
cool: cool:
address: "122.10.117.123:6379" address: "125.208.20.223:57095"
db: 0 db: 0
pass: "redis_PPn5iT" pass: "redis_wQ22jj"
blazing: blazing:
autoMigrate: true autoMigrate: true