版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、L-SDKL-SDK开发手册V1.0.17易通(北京)科技发展官网地址:官网:开发快开发快官网1 / 25L-SDK文档修改开发快官网2 / 25版本号发布日期描述作者V1.0.12015-4-15创建文档pengyouhongV1.0.62015-9-15增加 discover 接口pengyouhongV1.0.152015-11-20增加好友通知相应接口pengyouhongV1.0.172015-12-26调整格式,细化相关说明pengyouhongL-SDK1. 简介为 linux 平台提供相关 API 调用,通过 SDK 中的相关功能接口实现即时、离线消息,文件传输等功能。1.1
2、缩略词(1) AppKey 应用标识码,当开发者需要为一款智能)时,申请生成,应用开发时需要填入开发应用(终端与(2) UID 平台标识码(系统唯一,相当于账号),应用开发时需要填入(3) SecretKey 应用安全识别码,在调用一些管理接口时要填入(4) iLink 易通的物联网/智能硬件云,2. 接口协议2.1 接口功能描述本 SDK 具备的功能:(1) 与其它客户端进行能。、离线消息,点对点消息,群消息等功(2) 用于和服务器进行交互, 息广播(发布)等功能。登录、获取用户状态及添加用户好友、消(3) 实现和文件服务器进行交互,实现文件传输点对点文件/离线传输。2.2 通用说明(1)
3、所有函数都采用异步回调方式实现,调用函数里去检查。或者失败,请在相关回调(2) 接收消息也使用异步回调试,请在相关设置函数里设置消息接收函数, 已实现消息接入功能(3) SDK 基本操作流程:创建客户端实例-设置回调-搜索服务器连接服务器(在发现设备回调函数里)收发数据开发快官网3 / 25L-SDK3. 接口函数说明功能说明:该函数根据传入的服务器地址和 AppKey UID 创建一个 ETClient 实例参数说明: 输入参数:app_key:用户 AppKeyuserid:用户 UID local_ip:本机 IP server_uri:服务器 IP 地址server_port:服务器端
4、口persistence_type:客户端保存消息方式(暂不使用) persistence_context:客户端保存消息实例(暂不使用)输出参数:handle:返回 ET 实例句柄返回:ET_SUCCESS其它失败代码示例:示例代码 1(创建实例)功能说明:该函数实现销毁 ETClient 实例功能输入参数:handle: ETClient 实例句柄输出参数:无开发快官网4 / 25DLLExport void et_destroy_context(et_context handle)et_context client; int rc;rc=et_create_context(&client
5、,4cdad356-85b4-008698,”968”,192.168.1.41,”8085”,ET_PERSISTENCE_NONE, NULL); if(rc != ET_SUCCESS)printf(Failed to create, return code %dn, rc); goto destroy_exit;DLLExport int et_create_context(et_context* handle,char *app_key,char *userid,char *local_ip, const char* server_uri,int server_port,int pe
6、rsistence_type, void* persistence_context)L-SDK返回:ET_SUCCESS其它失败代码示例:示例代码 2(销毁实例)功能说明:该函数调函数输入参数:在连接异常断开,收到信息,搜索到服务器时回handle: ETClient 实例句柄context:程序上下文环境,回调函数会返回这一句柄callback: 连接异常断开,收到信息, 调函数句柄(具体参考调用实例)输出参数:无返回:ET_SUCCESS其它失败代码示例:,搜索到服务器时回示例代码 3(设置回调函数)开发快官网5 / 25et_callback_handles callback = 0;c
7、allback.pfn_on_msg = te_message_arrived;/消息到达时回调callback.pfn_broken = te_connection_lost;/连接断开时回调callback.pfn_on_delivery = NULL;callback.pfn_on_discover = te_discover_server;/ 发现服务器回调rc = et_set_callbacks(client, client, &callback); if(rc != ET_SUCCESS)printf(Failed to connect, return code %dn, rc)
8、; goto destroy_exit;DLLExport int et_set_callbacks(et_context handle, void* context, et_callback_handles *callback)et_context client; int rc;rc = et_destroy_context(client); if(rc != ET_SUCCESS)printf(Failed to destory, return code %dn, rc);L-SDK功能说明:该函数实现搜索内输入参数:服务器功能handle: ETClient 实例句柄time_out:超
9、时时间(为秒)options:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败代码示例:示例代码 4(发现服务器)功能说明:该函数主要实现连接登录服务器功能输入参数:handle: ETClient 实例句柄server_info:服务器地址指针,详见相关说明options:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败代码示例:开发快官网6 / 25DLLExport int et_connect(et_context handle, et_server_data *server_info,const et_connect_optio
10、ns* options)et_context_response_options ropts = 0; ropts.on_success = discover_success; ropts.on_failure = discover_fail; ropts.context = client;rc = et_discover_svrs(client,60,&ropts); if(rc != ET_SUCCESS)printf(Failed to connect, return code %dn, rc); goto destroy_exit;DLLExport int et_discover_sv
11、rs(et_context handle,int time_out,et_context_response_options* response)L-SDK示例代码 5(连接服务器)功能说明:该函数实现与服务器断开连接功能输入参数:handle: ETClient 实例句柄options:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败代码示例:示例代码 6(断开服务器连接)功能说明:该函数实现订阅相关信息功能开发快官网7 / 25DLLExport int et_subscribe(et_context handle, const char* topic, int
12、qos, et_context_response_options* response)et_disconnect_options dis_opt = 0; dis_opt.on_success = disconnect_success; dis_opt.on_failure = disconnect_fail; dis_opt.context = client;rc = et_disconnect(client, &dis_opt); if (rc != ET_SUCCESS)printf(now connect failn);DLLExport int et_disconnect(et_co
13、ntext handle, const et_disconnect_options* options)et_connect_options opts = 0; opts.on_success = connect_success_fun; opts.on_failure = connect_fail_fun; opts.context = context;opts keep_alive_interval = 60;/心跳时间opts.cleansession = 1;/是否清除离线消息标志位 0 有删除 1 为保存rc = et_connect(context,data, &opts); if
14、(rc != ET_SUCCESS)printf(now connect failn);L-SDK输入参数:handle: ETClient 实例句柄topic:订阅的qos:消息的级别response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数取消订阅相关输入参数:信息功能handle: ETClient 实例句柄topic:订阅的response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数发布相关输入参数:消息handle: ETClient 实例句柄destinationName:发布的,
15、 payloadlen:消息长度 payload:具体信息内容指针qos:消息级别retained:不是重复信息置为 0,否则置位为 1response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败开发快官网8 / 25DLLExport int et_context_send(et_context handle, const char* destination_name, int payload_len, void* payload, int qos, int retained,et_context_response_options* response)DLL
16、Export int et_unsubscribe(et_context handle, const char* topic, et_context_response_options* response);L-SDK功能说明:该函数相关用户消息功能输入参数:handle: ETClient 实例句柄userid:发布的,payloadlen:消息长度payload:具体信息内容指针response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数获取当前 SDK 版本功能输入参数:handle: ETClient 实例句柄size:buffer 大小
17、输出参数:ret_str:返回 SDK 字符串信息返回:ET_SUCCESS其它失败功能说明:该函数实现输入参数:用户状态功能handle: ETClient 实例句柄usrid:要用户 ID 信息response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败开发快官网9 / 25DLLExport int et_peer_state(et_context handle,char *userid,et_context_response_options* response)DLLExport int et_get_sdk_version(et_context ha
18、ndle,char *ret_str,int size)DLLExportintet_chat_to(et_contexthandle,char*userid,intpayload_len,void*payload,int retained,et_context_response_options* response)L-SDK功能说明:该函数实现获取系统时间功能输入参数:handle: ETClient 实例句柄response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现请求服务器离线消息功能( 必须在connect时, 将cleanses
19、sion 置位为 0,才能够接收离线消息,否则会删除离线消息) 输入参数:handle: ETClient 实例句柄response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现获取用户(userid)上线,下线通知的功能输入参数:handle: ETClient 实例句柄userid:要订阅用户 ID 信息response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:开发快官网10 / 25DLLExport int et_unsub_state(et_context handle,char *us
20、erid,et_context_response_options* response)DLLExport int et_sub_state(et_context handle,char *userid,et_context_response_options* response)DLLExport int et_offline_msg(et_context handle,et_context_response_options* response)DLLExport int et_system_time(et_context handle,et_context_response_options*
21、response)L-SDK该函数实现取消获取用户(userid)上线,下线通知的功能输入参数:handle: ETClient 实例句柄userid:要订阅用户 ID 信息response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现获取用户好友上线,下线通知的功能输入参数:handle: ETClient 实例句柄response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现取消获取用户好友上线,下线通知的功能输入参数:handle: ETClient 实例句柄response:回调函数
22、相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现取消获取用户好友输入参数:handle: ETClient 实例句柄好友列表的功能开发快官网11 / 25DLLExport int et_online_buddies(et_context handle,et_context_response_options* response)DLLExport int et_unsub_buddies_state(et_context handle,et_context_response_options* response)DLLExport int et_sub_b
23、uddies_state(et_context handle,et_context_response_options* response)L-SDKresponse:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败调用实例:示例代码 7(获取好友)开发快官网12 / 25DLLExport int et_file_to(et_context handle,char *userid,char *local_filename,et_context_response_options* response)void get_online_success(void* conte
24、xt, et_context_success_data* response)et_list list = NULL; int size,i; et_buddy_info *info;printf(get_online_success n); list = response-alt.list;size = et_list_size(context,list); for(i = 1; i userid);return;void get_online_fail(void* context, et_context_failure_data* response)printf(get_online_fai
25、l code is %d and message is %sn,response-code,response-message);et_context_response_options opts = 0; int rc;opts.on_success = get_online_success; opts.on_failure = get_online_fail; opts.context = client;rc = et_online_buddies(client,&opts); if(rc != ET_SUCCESS)printf(now et_online_buddies failn);L-
26、SDK功能说明:该函数实现上传指定文件功能输入参数:handle: ETClient 实例句柄userid:接收文件的用户 ID local_filename:要传送的文件路径和名称response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现相应文件到指定路径功能输入参数:handle: ETClient 实例句柄file_info:要的文件相关信息,详见 ETFSFileInfo结构体说明save_filename:保存文件相关路径和名字response:回调函数相关设置,详细实例说明输出参数:无返回:ET_SUCCESS其它失败功能说明
27、:该函数实现从接收的信息中获取要接收的文件相关信息输入参数:handle: ETClient 实例句柄file_str:要接收文件的相关字符信息file_info:要输出参数:无返回:ET_SUCCESS其它失败的文件相关信息,详见 et_dfs_file_info 结构体说明开发快官网13 / 25DLLExport int et_file_info(et_context handle,char *file_str,et_dfs_file_info *file_info)DLLExportintet_file_from(et_contexthandle,et_dfs_file_info*fi
28、le_info,char*save_filename,et_context_response_options* response)L-SDK功能说明:该函数实现增加好友功能输入参数:handle: ETClient 实例句柄secret_key:分配唯一的 secret_key userid:要增加用户 IDflag:是否通知好友,1输出参数:无返回:ET_SUCCESS其它失败知功能说明:该函数实现删除好友功能输入参数:handle: ETClient 实例句柄secret_key:分配唯一的 secret_key userid:要增加用户 IDflag:是否通知好友,1知输出参数:无返回:
29、ET_SUCCESS其它失败功能说明:该函数创建一个链表功能输入参数:handle: ETClient 实例句柄list:列表句柄的地址输出参数:无返回:ET_SUCCESS其它失败开发快官网14 / 25DLLExport int et_create_list(et_context handle,et_list *list)DLLExport int et_remove_buddy(et_context handle,char *secret_key,char *userid,int flag)DLLExport int et_add_buddy(et_context handle,char
30、 *secret_key,char *userid,int flag)L-SDK功能说明:该函数实现获取链表大小功能输入参数:handle: ETClient 实例句柄list:列表句柄输出参数:无返回:链表大小ET_FAILURE失败功能说明:该函数实现销毁链表功能输入参数:handle: ETClient 实例句柄list:列表句柄地址输出参数:无返回:ET_SUCCESS其它失败.功能说明:该函数获取链表相应位置的好友结构体指针功能输入参数:handle: ETClient 实例句柄list:好友链表句柄pos:好友链表所在位置输出参数:buddy_info:好友相关结构体指针返回:ET
31、_SUCCESS其它失败开发快官网15 / 25DLLExport int et_buddies(et_context handle,char *secret_key,et_list list)DLLExport int et_list_buddy_info(et_context handle,et_list list,int pos,et_buddy_info* buddy_info)DLLExport int et_destroy_list(et_context handle,et_list *list)DLLExport int et_list_size(et_context handl
32、e,et_list list)L-SDK功能说明:该函数实现获取好友列表功能输入参数:handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key,输出参数:list: 好友句柄,详见下面例子返回:ET_SUCCESS其它失败调用实例:示例代码 8(获取好友列表)功能说明:该函数实现创建相应群组功能输入参数:handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key, group_name:要创建群的名字group_userid: 要加入群的用户 ID 的指针数组名group_size:指针数组大小开发快官网16 /
33、 25DLLExportintet_create_grp(et_contexthandle,char*secret_key,char*group_name,constchar*group_userid,int group_size,et_group_info *info)et_list list = NULL; et_buddy_info *info;et_create_list(client,&list);/创建列表rc = et_buddies(client,c7147f6fea0daf6cbd36ed65b037b4c9,list); if(rc != ET_SUCCESS)printf
34、(now et_buddies failn);elsesize = et_list_size(client,list); /好友列表个数for(i = 1; i username,info-userid);et_destroy_list(client,&list);/删除好友列表L-SDK输出参数:info:创建返回:ET_SUCCESS其它失败调用实例:的群级相关信息示例代码 9(创建群)功能说明:该函数获取链表相应位置的群组结构体指针功能输入参数:handle: ETClient 实例句柄list:群组链表句柄pos:群组链表所在位置输出参数:buddy_info:群组相关结构体指针返回:
35、ET_SUCCESS其它失败功能说明:该函数实现获取当前群列表功能输入参数:handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key,输出参数:list: 好友句柄,详见下面例子返回:ET_SUCCESS其它失败调用实例:开发快官网17 / 25DLLExport int et_grps(et_context handle,char *secret_key,et_list list)DLLExport int et_list_group_info(et_context handle,et_list list,int pos,et_group_info*
36、 group_info)const char *tmp_str3 = 425,426,428; et_group_info info;rc=et_create_grp(client,c7147f6fea0daf6cbd36ed65b037b4c9,test_group,tmp_str,3,&info); if(rc = ET_SUCCESS)printf(now group id is %s and name is %sn,info.group_id,info.group_name);L-SDK示例代码 10(获取群列表)功能说明:该函数实现删除相应群功能输入参数:handle: ETClie
37、nt 实例句柄secret_key,:分配唯一的 secret_key, topic:相应群 ID输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现输入参数:群功能handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key,开发快官网18 / 25DLLExport int et_logout_grp(et_context handle,char *secret_key,char *topic)DLLExport int et_dismiss_grp(et_context handle,char *secret_key,char *top
38、ic)et_list list = NULL; et_group_info *info;et_create_list(client,&list);rc = et_grps(client,c7147f6fea0daf6cbd36ed65b037b4c9,list); if(rc != ET_SUCCESS)printf(now et_grps failn);elsesize = et_list_size(client,list); for(i = 1; i group_name,info-group_id);et_destroy_list(client,&list);L-SDKtopic:相应群
39、 ID输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现增加群成员到相应群组功能输入参数:handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key, topic:群的 ID 信息group_userid: 要加入群的用户 ID 的指针数组名(用法参考创建群)group_size:指针数组大小输出参数:无返回:ET_SUCCESS其它失败功能说明:该函数实现删除相应群成员功能输入参数:handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key, topic:群的 ID 信息group_userid:
40、 要删除群的用户 ID 的指针数组名(用法参考创建群)group_size:指针数组大小输出参数:无返回:ET_SUCCESS其它失败功能说明:开发快官网19 / 25DLLExport int et_grp_members(et_context handle,char *secret_key,char *topic,et_list list)DLLExport int et_remove_grp_member(et_context handle,char *secret_key,char *topic,const char*group_userid,int group_size)DLLExp
41、ortintet_add_grp_member(et_contexthandle,char*secret_key,char*topic,constchar*group_userid,int group_size)L-SDK该函数实现获取群成员列列表信息输入参数:handle: ETClient 实例句柄secret_key,:分配唯一的 secret_key, topic:群的 ID 信息输出参数:list: 当前群成员列表链表句柄(具体实现参考获取好友列表)返回:ET_SUCCESS其它失败4. 相关回调函数与结构体说明4.1登录服务器连接结构体说明:keep_alive_interval:
42、连接保持时间间隔,也就是心跳时间间隔,默认为60S,可以根据实现情况调整cleansession:服务器是否清除已经发布信息标志位,设置为 1 表示清除离线消息,这样可以保证客户端收到过期信息max_inflight:同时传送信息最大数目username:用户名/不再使用开发快官网20 / 25typedef structint keep_alive_interval; int cleansession;int max_inflight; const char* username; const char* password; int connect_timeout; int retry_int
43、erval;et_context_on_success* on_success; et_context_on_failure* on_failure; void* context;int server_uri_count; char* const* server_uris; int et_context_version; et_connect_options;L-SDKpassword:/不再使用connect_timeout:连接超时时间retry_interval:重新连接时间间隔on_success:连接回调函数必须设置on_failure:连接失败回调函数context:程序上下文环境
44、4.2 消息到达回调函数说明:消息到达回调函数(注意此回调之中,如果已经如果没有返回 0),其中:context:返回设置回调时,传入的句柄msg_type:消息类型,具体定义如下:enum相应消息返回 1,TOPIC_PUBLISH_MESSAGE = 0,/消息CHAT_TO_CHAT_MESSAGE, / 点对点消息FILE TRANSFERS_MESSAGE,/文件输送消息USER_ONLINE_MESSAGE,/用户上线通知消息USER_OFFLINE_MESSAGE,/用户下线通知消息;send_userid: topic_name: topic_len:者 ID 号名字(其中点对
45、点消息为 chat)名长度message:消息结构体,具体参考消息结构体说明开发快官网21 / 25typedef int te_on_message(void* context, int msg_type,char *send_userid,char* topic_name, int topic_len, et_context_message* message);L-SDK4.3 到达消息结构体说明:struct_id: 结构体标识struct_version:结构体版本号,值为 0 payload_len:消息长度 payload:消息内容qos:消息等级retained:显示当前消息是不
46、是订阅以前保存的消息dup:标记该消息是否为重复消息msgid:消息 ID 号4.4 相关操作设置结构体说明:on_success:操作回调函数on_failure:操作失败回调函数context:应用程序上下文环境token: 返回调用回调函数唯一标识开发快官网22 / 25typedef structet_context_on_success* on_success; et_context_on_failure* on_failure; void* context;et_context_token token; et_context_response_options;typedef structchar struct_id4; in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理安全事件改进措施
- 护理国科金项目的持续资助策略
- 护理服务流程中的护理服务现代化与智能化
- 护理风险管理理论与实践
- 卧床病人呼吸锻炼指导
- 护理心理学与心理健康的改善方法
- 快递公司人力资源管理之实战案例分析
- 零售业中技术支持岗位的发展前景与职责解析
- 旅游景区建设项目总工程师工作指南
- 零售业人力资源部经理面试要点
- 现场施工防尘降噪方案
- OpenClaw简介与准备工作
- 2026年阜阳幼儿师范高等专科学校单招职业适应性测试题库带答案详解(夺分金卷)
- 2026年内蒙古自治区公务员考试《行测》文化旅游主题卷
- 2026河南周口市川汇区招聘城管队员30人笔试模拟试题及答案解析
- 2026年村文书招聘考试笔试试题(含答案)
- 《急性上消化道出血急诊诊治流程专家共识(2020版)》解读课件
- 药店抗生素培训
- 海南保安行业现状分析报告
- 【《年产8万吨的异丙醇生产项目设计》19000字】
- 自救器维修保养制度规范
评论
0/150
提交评论