KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 90|回复: 1

dbmgr 中 onRegisterNewApp中的疑问

[复制链接]

8

主题

16

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2018-6-12 09:51:55 | 显示全部楼层 |阅读模式
在 这个函数 的 492行开始, 将刚注册进dbmgr中所有的 cell或base 会 广播给所有的其他cell和base,  但在509行 应该用 broadcastCpTypes[idx]来判断 组件类型 而不是 tcomponentType, 因为 最后 发给 其他cell或base,而不是 刚注册进来的那个。
  1. // 如果是baseapp或者cellapp则将自己注册到所有其他baseapp和cellapp
  2.         if(tcomponentType == BASEAPP_TYPE ||
  3.                 tcomponentType == CELLAPP_TYPE)
  4.         {
  5.                 KBEngine::COMPONENT_TYPE broadcastCpTypes[2] = {BASEAPP_TYPE, CELLAPP_TYPE};
  6.                 for(int idx = 0; idx < 2; ++idx)
  7.                 {
  8.                         Components::COMPONENTS& cts = Components::getSingleton().getComponents(broadcastCpTypes[idx]);
  9.                         Components::COMPONENTS::iterator fiter = cts.begin();
  10.                         for(; fiter != cts.end(); ++fiter)
  11.                         {
  12.                                 if((*fiter).cid == componentID)
  13.                                         continue;

  14.                                 Network::Bundle* pBundle = Network::Bundle::createPoolObject();
  15.                                 ENTITTAPP_COMMON_NETWORK_MESSAGE(broadcastCpTypes[idx], (*pBundle), onGetEntityAppFromDbmgr);
  16.                                
  17. <font color="#ff0000">                                if(tcomponentType == BASEAPP_TYPE)  //</font><font color="#2e8b57">我认为是broadcastCpTypes[idx] 而不是 tcomponentType</font>
  18.                                 {
  19.                                         BaseappInterface::onGetEntityAppFromDbmgrArgs11::staticAddToBundle((*pBundle),
  20.                                                 uid, username, componentType, componentID, startGlobalOrder, startGroupOrder,
  21.                                                         intaddr, intport, extaddr, extport, g_kbeSrvConfig.getConfig().externalAddress);
  22.                                 }
  23.                                 else
  24.                                 {
  25.                                         CellappInterface::onGetEntityAppFromDbmgrArgs11::staticAddToBundle((*pBundle),
  26.                                                 uid, username, componentType, componentID, startGlobalOrder, startGroupOrder,
  27.                                                         intaddr, intport, extaddr, extport, g_kbeSrvConfig.getConfig().externalAddress);
  28.                                 }
  29.                                
  30.                                 KBE_ASSERT((*fiter).pChannel != NULL);
  31. <font color="#ff00ff">                                (*fiter).pChannel->send(pBundle); // 发送给其他组件 而不是 </font>tcomponentType 对应的组件
  32.                         }
  33.                 }
  34.         }
  35. }
复制代码


回复

使用道具 举报

5

主题

3497

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-6-19 11:14:55 | 显示全部楼层
似乎没有问题, 你再仔细跟一下看看
QQ:3603661
3603661@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2018-12-10 18:24 , Processed in 0.030494 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表