Mars Windows 接入指南

jehoochen edited this page Aug 14, 2017 · 2 revisions

所有的编译脚本都在libraries目录

编译

编译环境: 安装Visual Studio 2015 编译:

python build_for_win32.py

编译成功后,输出文件详细介绍如下:

文件名 描述
Debug/mars.lib Debug版本静态库
Release/mars.lib Release版本静态库
include 要包含的头文件
log_crypt.cc.rewriteme 日志可扩展部分,使用前先改名为 log_crypt.cc,如若想自己实现日志加密等逻辑,重写该文件。
log_crypt.h 编译 log_crypt.cc 需要使用的头文件,请勿修改。
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 需要使用的头文件,请勿修改。

使用

xlog

推荐在 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

在使用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 接口详细说明

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.