当玩家id为0,说明是登陆或注册消息,随机挑选一个该类型下的节点发消息。

This commit is contained in:
liuxiaobo 2025-06-05 15:36:06 +08:00
parent 94b2989521
commit 76e86c9f06
2 changed files with 12 additions and 6 deletions

View File

@ -114,10 +114,16 @@ func (m *UserBindService) RandServiceNode(typeId pb.ServiceTypeId) (*etcd.Servic
// 根据服务类型,路由到对应的服务节点
func (m *UserBindService) FindServiceName(userId int64, typeId pb.ServiceTypeId) (string, error) {
// 内存中没有向redis中查询。redis中保留的服务节点不一定是可用的还需要向etcd中验证
if sName := m.LoadFromRedis(userId, typeId); sName != "" && m.serviceIsValid(sName) {
if userId > 0 {
// 向redis中查询。redis中保留的服务节点不一定是可用的还需要向etcd中验证
sName := m.LoadFromRedis(userId, typeId)
// log.DebugF("user:%v查找到服务节点:%s", userId, sName)
if sName != "" && m.serviceIsValid(sName) {
return sName, nil
}
}
// log.DebugF("user:%v查找到服务节点:%s为无效节点", userId, sName)
// redis也没有玩家的服务节点信息从etcd中找可用服务节点随机选择一个
node, err := m.RandServiceNode(typeId)
if err != nil {

View File

@ -13,8 +13,8 @@
2.05 redis写入数据的字段名有误。(已修复)
2.06 struct序列化到redis中时需要处理时间格式。(已修复)
2.07 清理登陆相关调试日志。(已完成)
2.08 login服切换到其它地方启动后gate服会路由失败。
2.08 login在创建帐号时还需要创建user。
2.08 login服切换到其它地方启动后gate服会路由失败。(已修复etcd没有删除失效节点导致。)
2.09 login在创建帐号时还需要创建user。
3.编写color game玩法
3.1 服务端玩法