KBEngine官方论坛

 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 配置 开服
查看: 57|回复: 2

每条协议的 msg id 是在哪定义的呀

[复制链接]

97

主题

354

帖子

1073

积分

金牌会员

Rank: 6Rank: 6

积分
1073
发表于 2018-12-24 16:16:30 | 显示全部楼层 |阅读模式

我看 tools目录下面的pycommon中的Machines.py 和 MessageStream.py

在给machine发消息的时候,在生成一个MessageStreamWriter的时候有一个msgID传进来了

例如:
  1. def startServer(self, componentType, cid, gus, targetIP, kbe_root, kbe_res_path, kbe_bin_path, trycount = 1, timeout = 1):
  2.                 """
  3.                 """
  4.                 msg = MessageStream.MessageStreamWriter(MachineInterface_startserver)
  5.                 msg.writeInt32(self.uid)
  6.                 msg.writeInt32(componentType)
  7.                 msg.writeUint64(cid)
  8.                 msg.writeInt16(gus)
  9.                 msg.writeUint16(socket.htons(self.replyPort)) # reply port
  10.                 msg.writeString(kbe_root)
  11.                 msg.writeString(kbe_res_path)
  12.                 msg.writeString(kbe_bin_path)

  13.                 if trycount <= 0:
  14.                         self.send( msg.build(), targetIP )
  15.                         self.receiveReply()
  16.                 else:
  17.                         self.sendAndReceive( msg.build(), targetIP, trycount, timeout )
复制代码


总共有这么几个msgid类型:
  1. MachineInterface_onFindInterfaceAddr = 1
  2. MachineInterface_startserver = 2
  3. MachineInterface_stopserver = 3
  4. MachineInterface_onQueryAllInterfaceInfos = 4
  5. MachineInterface_onQueryMachines = 5
  6. MachineInterface_killserver = 6
复制代码


这个msgid是怎么对应到引擎中的函数的啊,在引擎中是怎么定义的呀

在引擎中使用了这个宏将函数暴露的网络接口
  1. // 启动服务器
  2.         MACHINE_MESSAGE_DECLARE_STREAM(startserver,                                                NETWORK_VARIABLE_MESSAGE)

  3.         // 关闭服务器
  4.         MACHINE_MESSAGE_DECLARE_STREAM(stopserver,                                                NETWORK_VARIABLE_MESSAGE)

  5.         // 关闭服务器
  6.         MACHINE_MESSAGE_DECLARE_STREAM(killserver,                                                NETWORK_VARIABLE_MESSAGE)

  7.         // 请求强制杀死当前app
  8.         MACHINE_MESSAGE_DECLARE_STREAM(reqKillServer,                                        NETWORK_VARIABLE_MESSAGE)
复制代码


那这个msgid是怎么定义的,在引擎解包的时候应该是根据这个msgid来找到对应的函数




回复

使用道具 举报

5

主题

3926

帖子

214748万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2147483647

引擎扛把子

发表于 2018-12-24 16:57:41 | 显示全部楼层
简单来说就是自动生成的。

一些想明确固定下来的协议id在messages_fixed_defaults.xml中约定。
QQ:3603661
3603661@qq.com
回复

使用道具 举报

97

主题

354

帖子

1073

积分

金牌会员

Rank: 6Rank: 6

积分
1073
 楼主| 发表于 2018-12-24 17:14:24 | 显示全部楼层
柯标 发表于 2018-12-24 16:57
简单来说就是自动生成的。

一些想明确固定下来的协议id在messages_fixed_defaults.xml中约定。 ...

soga,原来如此,看到这个文件中定义msg id了
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|KBEngine Forum

GMT+8, 2019-1-19 11:01 , Processed in 0.053053 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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