```
feat(config): 添加RPC端口和游戏端口配置项 在配置结构体中新增了RPC端口和游戏端口字段,并更新了配置文件以支持多端口监听。同时, 调整了服务器端口选择逻辑,优先使用默认端口,不再生成随机端口。 refactor(server): 移除随机端口生成逻辑 删除了随机端口生成及相关依赖,端口选择改为从预定义列表中查找可用端口,提高端口分配的 可控性和稳定性。 fix(fight): 注释掉未实现的panic语句 为避免程序运行时因未实现逻辑导致崩溃,注释掉了Turn_Start和Fight_Start中的panic调用, 并添加了相关注释说明后续需实现的内容。 chore(config): 更新默认配置参数 更新了服务器地址、端口、数据库连接信息及Redis配置,确保开发环境配置正确。 ```
This commit is contained in:
@@ -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(),
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
// 遍历指定的端口列表
|
||||||
|
for _, port := range candidatePorts {
|
||||||
if isPortAvailable(port) {
|
if isPortAvailable(port) {
|
||||||
return port, nil
|
return port, nil
|
||||||
}
|
}
|
||||||
log.Printf("Port %d is not available, retrying...", port)
|
log.Printf("Port %d is not available, checking next...", 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 检查端口是否可用
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
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
|
graceful: true # 是否开启平滑重启特性,开启时将会在本地增加10000的本地TCP端口用于进程间通信。默认false
|
||||||
gracefulTimeout: 2 # 父进程在平滑重启后多少秒退出,默认2秒。若请求耗时大于该值,可能会导致请求中断
|
gracefulTimeout: 2 # 父进程在平滑重启后多少秒退出,默认2秒。若请求耗时大于该值,可能会导致请求中断
|
||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user