帮助列表
帮助列表
智能通讯C++接口说明
一、服务器接口说明 二、客户端接口说明    

一、智能通讯服务器接口说明

SDK包括include、64(64位库)、32(32位库)文件夹
使用时需要包含app/adcloud_app.hpp和链接libadcloud_app.so

Start

● Start

class IAppListener:

● L_ClientIn(const ClientId& id,const std::string& addr)

● L_ClientOut(const ClientId& id)L_ClientData

● L_ClientData(const ClientId& id,void* buf,int size)

● L_AppData(const std::string& appid,void*buf,int size)

● L_Close()

class IApp:

● Stop()

● Release()

● SendToClient(const ClientId& id,void* buf,int size)

● CloseClient(const ClientId& id)

● AddScope(const std::string& scope,const ClientId& id)

● DelScope(const std::string& scope,const ClientId& id)

● SendToScope(const std::string& scope,void* buf,int size)

● Broadcast(void*buf,int size)

● SendToApp(const std::string& appid,void*buf,int size)


IApp* Start( const std::string& appid,
const std::string& password,
const std::vector<std::string>& proxy_addrs,
IAppListener* lis,
int* error );
开启与通讯库的连接,返回通讯库对象指针,
参数说明:
appid: 通讯库ID,由云通讯库生成的唯一标识
password:通讯库密码,由用户设置
proxy_addrs:通讯库服务器集群,每一项有IP:PORT组成
Lis: 服务器监听指针,监听和接受客户端或者其他应用数据
error :错误码信息,用于返回服务器中的错误
使用方法:

IAppListener_app* lis; //IAppListener_app 继承自IAppListener
                        Int err;
                        adcloud::app::IApp* app_;
                        app_ =  adcloud::app::Start("appid1","123456",
                        "service.ics.aodianyun.com:8365",lis,&err);//返回通讯库对象 


IAppListener:

服务器监听类,负责监听客户端和其他app的消息,用户使用时只要从该类派生出子类,并实现被回调的方法即可

void L_ClientIn(const ClientId& id,const std::string& addr);


当用户登录时被调用,接收到登录的id和addr

void L_ClientOut(const ClientId& id)


用户登出时被调用,用来处理客户端id登出信息

void L_ClientData(const ClientId& id,void* buf,int size);

接收到客户端数据时被调用,一般是用户服务器逻辑处理的入口
参数说明:
id:接收到客户端id
buf:接收数据指针buf
size:接收到数据的大小sizie

void L_AppData(const std::string& appid,void*buf,int size);


其他应用数据接入时被调用,常用来做多应用程序之间的通信
参数说明:
appid:接收到其他应用的appid
buf:接收数据指针
size:接收到数据的大小

void L_Close();

通讯库主动断开时被调用
使用方法:

class MyApp:public adcloud::app::IAppListener{
                public:
                        void  L_ClientIn(const adcloud::app::ClientId& id,const std::string& addr){
                                //处理用户登录时的信息 
                                num_client ++ ;
                        }
                        void  L_ClientOut(const adcloud::app::ClientId& id){
                                //处理客户端登出时的逻辑
                                num_client --;
                        }
                        void L_ClientData(const  adcloud::app::ClientId& id,void* buf,int size){
                                //处理客户端有数据时的逻辑
                        }
                        void  L_AppData(const std::string& appid,void*buf,int size){
                                //处理其他应哟有数据接入时的消息
                        }
                        void  L_Close(){
                                //cout << "L_Close"处理通讯库关闭时的逻辑 
                                exit(0);
                        }
private:
int num_client;
};


class IApp:

服务器发送相关类,直接调用该类的方法就可以实现对客户端或则其他app发送消息(包括单个发送,群发和广播等)

void Stop()

停止与通讯库的通信

void Release()

释放通讯库资源

bool SendToClient(const ClientId& id,void* buf,int size)


向客户端发送数据 发送成功返回true,失败返回false
发送参数:目标客户端id发送数据的地址buf和要发送数据的大小size


bool CloseClient(const ClientId& id);


关闭与客户端为id的连接,
成功返回true,失败为false

bool AddScope(const std::string& scope,const ClientId& id)


把一个客户端id加入到scope群发域,
成功返回true,失败为false

bool DelScope(const std::string& scope,const ClientId& id)


把一个客户端id从群发域scope中删除,
成功返回true,失败为false

bool SendToScope(const std::string& scope,void* buf,int size)


对一个群发域群scope发消息,buf:要群发的数据地址,size:要群发的数据大小
成功返回true,失败为false

bool Broadcast(void*buf,int size)


发送广播消息,包括广播的数据首地址buf,广播的数据大小size
成功返回true,失败为false

bool SendToApp(const std::string& appid,void*buf,int size)


向其他应用发送数据,常用来做多应用程序之间的通信,要发送的其他应用的appid,发送数据指针地址buf和发送到数据的大小size,成功为true,失败为false