-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Mars Windows 接入指南
garryyan edited this page Dec 30, 2018
·
3 revisions
所有的编译脚本都在libraries目录
编译环境: 安装Visual Studio 2015、cmake、python2.7 编译:
python build_windows.py
编译成功后,输出文件详细介绍如下:
文件名 | 描述 |
---|---|
Debug/mars.lib | Debug版本静态库 |
Release/mars.lib | Release版本静态库 |
include | 要包含的头文件 |
longlink_packer.cc.rewriteme | 长连接协议可扩展部分,使用前请先改名为 longlink_packer.cc,如若想自定义长连接包头以及加解包,重写该文件。 |
longlink_packer.h | 编译 longlink_packer.cc 需要使用的头文件,请勿修改。 |
stnproto_logic.h | longlink_packer.cc 中 SetClientVersion 函数的声明。如若删除 SetClientVersion 函数,请同时删除该文件。 |
shortlink_packer.cc.rewriteme | 短连接协议可扩展部分,使用前请先改名为 shortlink_packer.cc,如若想自定义短连接包头(HTTP Head),重写该文件。 |
shortlink_packer.h | 编译 shortlink_packer.cc 需要使用的头文件,请勿修改。 |
推荐在 main 函数里初始化:
std::string logPath = "Log"; //use your log path
std::string pubKey = ""; //use you pubkey for log encrypt
#if _DEBUG
xlogger_SetLevel(kLevelDebug);
appender_set_console_log(true);
#else
xlogger_SetLevel(kLevelInfo);
appender_set_console_log(false);
#endif
appender_open(kAppednerAsync, logPath.c_str(), "Sample", pubKey.c_str());
在程序退出时反初始化:
appender_close();
需要注意:
- 保存 log 的目录请使用单独的目录,不要存放任何其他文件防止被 xlog 自动清理功能误删。
- debug 版本下建议把控制台日志打开,日志级别设为 Debug, release 版本建议把控制台日志关闭,日志级别使用 Info.
在使用STN之前进行初始化:
void setShortLinkDebugIP(const std::string& _ip, unsigned short _port)
{
mars::stn::SetShortlinkSvrAddr(_port, _ip);
}
void setShortLinkPort(unsigned short _port)
{
mars::stn::SetShortlinkSvrAddr(_port, "");
}
void setLongLinkAddress(const std::string& _ip, unsigned short _port, const std::string& _debug_ip)
{
vector<uint16_t> ports;
ports.push_back(_port);
mars::stn::SetLonglinkSvrAddr(_ip, ports, _debug_ip);
}
void Init()
{
mars::stn::SetCallback(mars::stn::StnCallBack::Instance());
mars::app::SetCallback(mars::app::AppCallBack::Instance());
mars::baseevent::OnCreate();
//todo
//mars::stn::SetClientVersion(version);
//setShortLinkDebugIP(...)
//setLongLinkAddress(...)
mars::baseevent::OnForeground(true);
mars::stn::MakesureLonglinkConnected();
}
初始化顺序不一定要严格遵守上述代码的顺序,但在初始化时首先要调用 setCallBack 接口(callback 文件的编写可以参考 demo ),最后再调用 onForeground 和 makesureLongLinkConnect,中间顺序可以随意更改。注意:STN 默认是后台,所以初始化 STN 后需要主动调用一次BaseEvent.onForeground(true)
在程序退出时或需要释放 stn 时调用:
mars::baseevent::OnDestroy();
Windows接口与iOS/OS X接口相同,更详细的的接口说明请参考 Mars iOS/OS X 接口详细说明
Mars Android 接入指南
Mars iOS/OS X 接入指南
Mars Windows 接入指南
Xlog 加密使用指引
Mars 常用术语
Mars 常见问题
Mars 自定义扩展
Mars Sample 使用说明
Mars Android 接口详细说明
Mars iOS/OS X 接口详细说明
Mars 其他资料
STN Benchmark
Xlog Benchmark
微信 Mars — 移动互联网下的高质量网络连接探索(小蛮腰科技大会PPT)
微信终端跨平台组件 Mars 系列(一) - 高性能日志模块 xlog
微信终端跨平台组件 Mars 系列 (二) - 信令传输超时设计