另开一个端口为手机用户提供服务。hotfox.conf增强,<module>为协议模块,默认UMX协议.mtp是手机协议对应的模块实现。
<service port="9605" module="mtp.dll" authenticate="false"/>
mtp.conf配置如下:
<?xml version="1.0" encoding="gb2312" standalone="no"?>
<config>
<msg> <!-- 转换的UMX消息 -->
<type>7</type>
<id>828</id>
</msg>
</config>
<config>
<msg> <!-- 转换的UMX消息 -->
<type>7</type>
<id>828</id>
</msg>
</config>
默认会把mtp的数据封装成828通知消息。
封装的消息包括mtp的包头和包体(因为包头的内容应用可能需要处理,所以没有过滤掉)。
为手机用户提供服务的插件,可以在838-Indication的协议函数里处理。
int OnMTPMsg(CWrappedMsg<> *in,vector<CWrappedMsg<> *>,DISPATCH_RESULT &or) {
char *data = 0;
unsigned int len = 0;
in->msg->GetParam("data",&data,len); ///< 实际的数据在data参数中
///< 根据MTP包体的命令类型调用各自的处理函数
switch(cmdType) {
case AAA:
OnAAA(mtp);
break;
....
}
...
///< 返回的数据也用828-Indication封包
return 0;
}