首次提交
This commit is contained in:
93
doc/entry.md
Normal file
93
doc/entry.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# 快速入门
|
||||
|
||||
Messenger SDK一般是一个如下格式的压缩包
|
||||
|
||||
/libs
|
||||
/arm64-v8a
|
||||
/x86-64
|
||||
/Windows
|
||||
/Linux
|
||||
...
|
||||
/include
|
||||
...
|
||||
|
||||
|
||||
其中,libs下放置的是一些静态连接库,包含Android、Linux以及Windows。你需要将这些静态链接库链接到您的项目中,
|
||||
并且在您项目的头文件搜索路径中添加 *include* 文件夹。
|
||||
|
||||
然后,你将可以使用Messenger的API了。
|
||||
|
||||
## 使用方法
|
||||
|
||||
Messenger SDK的主要class是 ling::Messenger ,它提供了服务器全部API的抽象。
|
||||
它由ling::Client派生而来,ling::Client实现了服务器的通讯协议,包括STL握手过程。
|
||||
|
||||
> ling::Messenger以及ling::Client,都具有ling前缀,在C++中,这叫命名空间(*namespace*)。SDK内全部的class都在ling命名空间下。
|
||||
|
||||
|
||||
ling::Messenger将是您接触最多的class。
|
||||
它有两个构造函数:
|
||||
|
||||
~~~cpp
|
||||
namespace ling{
|
||||
class Messenger : public Client {
|
||||
public:
|
||||
/**
|
||||
* 创建一个Messenger实例,创建实例时,即连接到Server。
|
||||
*
|
||||
* @param host 服务器host
|
||||
* @param port 端口号
|
||||
* @param projectId 项目id
|
||||
* @throw ConnectException 在连接失败时
|
||||
*/
|
||||
Messenger(std::string host, int port, uint64_t projectId);
|
||||
|
||||
/**
|
||||
* 此重载相比上面的定义,额外需要一个deviceUid参数。
|
||||
* 这是设备识别码,上面的实现将会自动读取设备识别码,但是可能不会唯一
|
||||
* 扛攻击的能力较弱,如果设备拥有root权限则很可能被修改
|
||||
* 所以,如果你有更加适合你需求的方案识别设备,将它作为第四个参数传递进来!
|
||||
*
|
||||
* @param host 服务器host
|
||||
* @param port 端口号
|
||||
* @param projectId 项目id
|
||||
* @param deviceUid 设备识别码
|
||||
* @throw ConnectException 在连接失败时
|
||||
*/
|
||||
Messenger(std::string host, int port, uint64_t projectId, std::string deviceUid);
|
||||
};
|
||||
}
|
||||
~~~
|
||||
|
||||
> 以后您会经常看到像这样的声明,提前熟悉它!
|
||||
|
||||
在Messenger创建完毕后,你可以通过它来和服务器交互。
|
||||
|
||||
## 范例
|
||||
|
||||
~~~ cpp
|
||||
//别忘了导入定义!
|
||||
#include <Messenger.h>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
|
||||
//因为Messenger每次创建都会连接到服务器
|
||||
//所以你不能每次和服务器交互都创建一个实例,而是必须复用!
|
||||
//此处使用一个智能指针来管理Messenger的实例
|
||||
//手动将没有初始值的指针赋值为nullptr,这是一个良好的编程习惯。
|
||||
static std::shared_ptr<ling::Messenger> api = nullptr;
|
||||
|
||||
int main(void){
|
||||
try{
|
||||
//这里使用make_shared自动构造智能指针
|
||||
::api = std::make_shared<ling::Messenger>("127.0.0.1",2019,1);
|
||||
//在此时已经成功连接到服务器,可以进行交互。
|
||||
//注意,交互之前必须进行设备注册,这个后面的章节在说。
|
||||
} catch (const ling::ConnectException & e){
|
||||
//还记得上面的声明中提到连接失败时会抛出ConnectException吗?
|
||||
std::cerr << "连接服务器失败" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
~~~
|
||||
|
||||
1
doc/error.md
Normal file
1
doc/error.md
Normal file
@@ -0,0 +1 @@
|
||||
# 异常
|
||||
Reference in New Issue
Block a user