Mars Sample 使用说明
Mars Sample 使用说明
为了更好地帮助开发者使用和理解Mars并且体验Mars的特性,需要开发者自行搭建服务器。服务器的代码在mars源码目录下的samples/server中
体验内容包括:
- 基于TCP长连接的聊天室体验。
- 数据通信成功率、耗时、流量的展示。
- 网络状况检测结果展示。
如果开发者想要本地体验,可以遵照下面的方法。
Server启动
进入mars源码目录下的samples/server,执行start_server.py脚本,选择对应平台
$ python start_server.py
Enter menu:
1. start server on Mac, Linux or Cygwin.
2. start server on Windows.
3. exit.
若在类Unix平台执行脚本后出现
: file not found
错误,请使用vim打开gradlew文件,按
shirft+:
,输入
set fileformat=unix
后保存并退出。
server代码使用java编写,gradle集成,所以首次使用的开发者需要耐心等待gradle环境的自动下载和准备。
Mac、Windows平台执行脚本成功后会弹出Proxy和WebServer启动成功的命令行窗口:


Linux平台下Server的启动被设置为后台进程,当脚本执行完毕后可通过
ps aux|grep gradle
命令观察,并进入
{user.home}/logs/mars
目录查看日志,确认是否启动成功。
Android Sample
使用本地Server服务,有多种方法可供选择:
方法一、修改替换云服务域名marsopen.cn的NewDNS解析(MarsServiceStub.java):
{
@Override
public String[] onNewDns(String host) {
return new String[]{
"118.89.24.72"
};
}
}
将"118.89.24.72"替换为"127.0.0.1",并且需要将app/build.gradle里的useLocalMarsWrapper修改为true,使用本地wrapper project
方法二、全局搜索marsopen.cn,修改替换为localhost
强烈推荐方法二
把手机连接到电脑上或者打开模拟器,运行
adb reverse tcp:8080 tcp:8080
adb reverse tcp:8081 tcp:8081
把手机或者模拟器的端口映射到电脑上, 需要注意的Android 5.0及以上才支持 adb reverse
使用Android Studio打开mars源码目录下samples/android/build.gradle,待gradle sync完成,直接启动即可。
启动Android Sample后进入会话列表界面:

点击任意Topic即可进入聊天室:

开发者如果想查看数据通信的成功失败以及耗时等多方面数据统计,可在会话列表界面点击右上角进入:

简单解析数据统计页面内容:
- 界面底部Tab分别展示数据通信、流量、网络自动检测的统计结果。
- 数据通信页面,task 代码执行的数据通信业务类型、success 表明是否执行成功...
如图中表示拉取会话列表的通信通过 HTTP 短连接执行了两次失败。
iOS/Mac Sample
使用本地Server服务,
方法一、需要修改替换云服务域名marsopen.cn的NewDNS解析(stn_callback.mm):
std::vector<std::string> StnCallBack::OnNewDns(const std::string& _host) {
std::vector<std::string> vector;
vector.push_back("118.89.24.72");
return vector;
}
方法二、全局搜索marsopen.cn,修改替换为localhost,删除stn_callback.mm的OnNewDns方法中的
vector.push_back("118.89.24.72");
推荐方法二,然后按照下列方法运行程序:
- 通过编译脚本编出相应的库
- 把 framework 库放到相应的 sample 目录,例如 iOSDemo 目录(如果提示链接不上,或者库在其他目录通过修改 Link Binary With Libraries链接上正确的mars库)
- 把进入 mars 源码目录下 samples/iOS/iOSDemo or samples/Mac 选择 xcodeproj 启动,
Windows Sample
使用本地Server: 全局搜索marsopen.cn,替换为127.0.0.1,删除stn_callback.cpp中的
vector.push_back("118.89.24.72");
然后按照下列方法启动客户端:
- 进入到 sample/Windows目录
- 执行
md cmake_build && cd cmake_build && cmake .. && cmake --build . --target install --config Release && cd .. - 进入到cmake_build/Windows.out目录运行exe即可
- 如果需要调试,可使用cmake_build目录下的sample.sln 进行调试
Mars Sample 使用说明的更多相关文章
- hdu 3873 Invade the Mars(有限制的最短路 spfa+容器)
Invade the Mars Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 365768/165536 K (Java/Others ...
- CodeForces 670 A. Holidays(模拟)
Description On the planet Mars a year lasts exactly n days (there are no leap years on Mars). But Ma ...
- Codeforces Round #350 (Div. 2) A. Holidays 水题
A. Holidays 题目连接: http://www.codeforces.com/contest/670/problem/A Description On the planet Mars a y ...
- 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...
- hdu4059 The Boss on Mars(差分+容斥原理)
题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设 则 为一阶差分. 二阶差分: n阶差分: 且可推出 性质: 1. ...
- PAT (Advanced Level) Practise:1027. Colors in Mars
[题目链接] People in Mars represent the colors in their computers in a similar way as the Earth people. ...
- word2vec使用说明(google工具包)
word2vec使用说明 转自:http://jacoxu.com/?p=1084. Google的word2vec官网:https://code.google.com/p/word2vec/ 下 ...
- hdu---(1800)Flying to the Mars(trie树)
Flying to the Mars Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU 4059 The Boss on Mars 容斥原理
The Boss on Mars Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
随机推荐
- [Beta阶段]第五次Scrum Meeting
Scrum Meeting博客目录 [Beta阶段]第五次Scrum Meeting 基本信息 名称 时间 地点 时长 第五次Scrum Meeting 19/05/10 新主楼F座2楼 50min ...
- Unity2D音游案例-节奏大师教程+源码+素材
Unity2D音游案例-节奏大师(Unity2017.2 ,基于Koreographer),本案例涉及到一些音乐音频音波的一点点内容. 首先,我们会把音游的核心功能实现,之后几个重要内容会出给思路并带 ...
- 微信小程序 获取地理位置信息
app.json "permission":{ "scope.userLocation": { "desc": "你的位置信息将用 ...
- [转]将已有项目代码加入svn版本控制
原文链接:https://blog.csdn.net/aaroun/article/details/79074178 将已有项目代码加入svn版本控制 - TortoiseSVN入门篇Windows下 ...
- Could not create connection to database server. Attempted reconnect 3 times. Giving up.
报出这个错误,可能原因: 1.检查MySQL数据库服务是否正常(包含检查服务名和密码),如果不正常,修复至正常为止: 2.maven工程中导入的mysql的jar版本和你的MySQL版本不相符,必须相 ...
- 【转】京东金融App端链路服务端全链路压测策略
京东金融移动端全链路压测历时三个月,测试和服务端同学经过无数日日夜夜,通宵达旦,终于完成了移动端链路的测试任务.整个测试有部分涉及到公司敏感数据,本文只对策略部分进行论述. 1.系统架构与策略 在聊性 ...
- VMware设置桥接模式(使虚拟机拥有独立IP访问外网)
1.关闭虚拟机里的系统 2.VMware主窗口 编辑---->虚拟网络编辑器 右下角----> 更改设置---->出现 桥接模式 桥接到:看本机所连接的网络, 网络属性中有一项“描 ...
- ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞
ThinkPHP 5.0.x.5.1.x.5.2.x 全版本远程代码执行漏洞 作者:SoulCat. 来源:CSDN 原文:https://blog.csdn.net/csacs/article/de ...
- [Golang] ETCD键值监听器
0x0 需求 我们所有的服务启动后都以lease形式注册入ETCD,现要把这些服务监控起来. 0x1 ETCD key监听器实现 可动态增删要监听的键值对 https://github.com/bai ...
- Arch Linux 启用 MTU 探测
最近在家里经常遇到 ssh 超时的问题,一开始也没太当回事,感觉是网络不稳定导致的,但是后来慢慢的发现这种超时问题只会出现在跟 ssh 相关的程序中,例如 git.ssh.这成功的引起了我的注意,于是 ...