为了更好地帮助开发者使用和理解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");

推荐方法二,然后按照下列方法运行程序:

  1. 通过编译脚本编出相应的库
  2. 把 framework 库放到相应的 sample 目录,例如 iOSDemo 目录(如果提示链接不上,或者库在其他目录通过修改 Link Binary With Libraries链接上正确的mars库)
  3. 把进入 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");

然后按照下列方法启动客户端:

  1. 进入到 sample/Windows目录
  2. 执行 md cmake_build && cd cmake_build && cmake .. && cmake --build . --target install --config Release && cd ..
  3. 进入到cmake_build/Windows.out目录运行exe即可
  4. 如果需要调试,可使用cmake_build目录下的sample.sln 进行调试

Mars Sample 使用说明的更多相关文章

  1. hdu 3873 Invade the Mars(有限制的最短路 spfa+容器)

    Invade the Mars Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 365768/165536 K (Java/Others ...

  2. CodeForces 670 A. Holidays(模拟)

    Description On the planet Mars a year lasts exactly n days (there are no leap years on Mars). But Ma ...

  3. Codeforces Round #350 (Div. 2) A. Holidays 水题

    A. Holidays 题目连接: http://www.codeforces.com/contest/670/problem/A Description On the planet Mars a y ...

  4. 如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源

    1.前言 关于微信内部正在使用的网络层封装库Mars开源的消息,1个多月前就已满天飞(参见<微信Mars:微信内部正在使用的网络层封装库,即将开源>),不过微信团队没有失约,微信Mars ...

  5. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  6. 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. ...

  7. word2vec使用说明(google工具包)

    word2vec使用说明   转自:http://jacoxu.com/?p=1084. Google的word2vec官网:https://code.google.com/p/word2vec/ 下 ...

  8. 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 ...

  9. HDU 4059 The Boss on Mars 容斥原理

    The Boss on Mars Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

随机推荐

  1. kafka如何实现高并发存储-如何找到一条需要消费的数据(阿里)

    阿里太注重原理了:阿里问kafka如何实现高并发存储-如何找到一条需要消费的数据,kafka用了稀疏索引的方式,使用了二分查找法,其实很多索引都是二分查找法  二分查找法的时间复杂度:O(logn) ...

  2. linux 上使用yum 安装openjdk1.8

    使用yum查找jdk: yum search java|grep jdk # yum search java|grep jdk ldapjdk-javadoc.noarch : Javadoc for ...

  3. js 计算总页数的最高效方式

    js 计算总页数的最高效方式 /** * [getTotalPageNum 获取页码总数] * @param {[type]} totalRecord [总记录] * @param {[type]} ...

  4. win10安装grafana

    1.下载grafana-6.2.5.windows-amd64.msi 2.以管理员身份打开CMD 3.输入 msiexec /i 程序的完整路径 msiexec /i xxx.msi

  5. 两款不错的js甘特图控件

    dhtmlx:https://docs.dhtmlx.com/ jQuery.Gantt:http://taitems.github.io/jQuery.Gantt/

  6. 安全漏洞XSS、CSRF、SQL注入以及DDOS攻击

    随着互联网的普及,网络安全变得越来越重要,程序员需要掌握最基本的web安全防范,下面列举一些常见的安全漏洞和对应的防御措施. 0x01: XSS漏洞 1.XSS简介 跨站脚本(cross site s ...

  7. java中静态方法中为什么不能使用this、super和直接调用非静态方法

    这个要从java的内存机制去分析,首先当你New 一个对象的时候,并不是先在堆中为对象开辟内存空间,而是先将类中的静态方法(带有static修饰的静态函数)的代码加载到一个叫做方法区的地方,然后再在堆 ...

  8. 浏览器查看和手动设置cookie的值

    1.查看:按F12进入浏览器的开发者模式——console——在命令行输入javascript:alert(document.cookie),再回车 2.按F12进入浏览器的开发者模式——consol ...

  9. cent os 部署blade

    一:安装docker 二:安装docker-compose 三:安装Harbor 四:配置Harbor使用https和2376端口 在/etc/docker 目录下面创建文件:create_tls_c ...

  10. 【转】什么是5G?居然有人用漫画把它讲得如此接地气!

    最近一系列层出不穷的新闻,似乎都离不开一个关键词——5G.在各大报道中,都提到5G网络是移动无线技术的下一个重要发展. 任正非之前也在采访中说过: “5G,别人两三年也不会追上我们的.” “5G并不是 ...