sdk方法接口:

方法接口:
系统类方法:
初始化,参数字段中,除了appid,appkey,onready外,其余均为可选参数,根据实际需要设置,大部分为事件回调接口
kfssdk.init({
  appid:?,  //在开发者管理页面中创建的app的唯一标识
  appkey:?, //在开发者管理页面中对应的app的认证码
  [sync_time:true,] //是否需要系统自动同步服务器时间,只有同步后,方法kfssdk.cur_service_time()才有效,这样可以统一采用服务器时间来同步各客户端本地时间的差异性,以实现依赖于时间同步的应用和游戏达到每个客户端同一时刻保持绝对一至界面表现的效果,很多应用和游戏并不需要每个客户端统一精准时间,可以不设置
  [disable_head_portrait_menu:true,] //sdk初始化后,一般自动在页面右上角展示平台系统菜单以协助用户处理一些帐户相关的基本事务,对于某些特殊应用或游戏界面如果不希望这个图标遮挡影响用户体验时,可以设置此项以屏蔽系统菜单
  
  onready: , // 必须设置,在sdk初始化并登录成功后回调此事件,app可以在此事件中开始自己的业务逻辑
  onreconnect: , // 当网络断开自动重连重登录后回调,如果没有设置将自动调用onready
  ...
});
//app唯一标识
kfssdk.appid()
//uid是否为当前用户自身
kfssdk.is_self(uid)
//当前用户是否为游客帐户
kfssdk.is_guest()
//请求用户信息,将在初始中传入的onuser_info事件中异步返回
kfssdk.get_user_info([uid_list])
//获取最新头像url地址,包括拼接的最新头像版本号
kfssdk.get_head_portrait(kfssdk)
//设置头像,具体功能由平台统一提供实现,完成后将产生onset_head_portrait事件,注意:如果用户取消设置头像或设置头像失败(如网络原因等),如果之前已有头像则不会回调onset_head_portrait,否则也会回调onset_head_portrait,且参数为false
kfssdk.head_portrait_set()
//要使用此接口请将kfssdk.init参数中sync_time设置为true
kfssdk.cur_service_time()
// 动态注册回调事件
kfssdk.addEventListener(event_name, event_funs, event_owner, seq, insert)
// 删除批定动态注册回调事件
kfssdk.removeEventListener(event_name, event_funs, event_owner, seq)
// 删除所有动态注册回调事件
kfssdk.removeAllEventListener(event_name)
---------------------------------------
以下为协议类方法(此处参数仅作简单示例说明,详细请参考相关协议文档为准):
//发送私有消息,此接口与频道无直接关系,uid来源可能来自频道内用户,也可能来自于好友系统等,因为安全问题,此接口目前处于实验阶段,后续存在修改优化的可能性较大
kfssdk.send_private_msg({
    _uid_list:[],
    _sub_type: ?,
    _msg: ?,
    _enable_offline: ?,
})
//创建一个消息频道,具体行为特性由传入的对象参数决定
kfssdk.create_channel({
  _channel:,
  _channel_option:{
    _password = 1; // 订阅密码
    _max_user = 2; // 默认100
    _max_keep_msg_list_len = 3; // 默认0,处理后立即删除
    _max_keep_msg_time = 4; // 默认0,处理后立即删除
    _join_notify = 5; // 默认true,每个新加入/订阅的用户均会双向通知到所有人及将所有人通知给新人
    _leave_notify = 6; // 默认true,每个离开/取消订阅的用户均会双向通知到所有人及将所有人通知给新人
    _max_offline_wait_time = 7; // 默认0,立即移除该用户
    _public = 8; // 默认false,仅当前app内可见,作用域为当前app范围;否为为全系统范围
    _auto_destroy = 9; // 默认true,当频道无人时自动销毁
    _allow_publish_users = 10; // 默认nil,即允许所有频道范围(app或全局)
  },
  _begin_service_seq:, // 默认为nil,表示只发送之后的消息
  _last_msg_len:<_last_msg_len>
});
//删除消息频道,只有master才有删除权限,master一般为频道创建者或创建者的转让后继者
kfssdk.destroy_channel({
  _channel:
});
//发送(发布)消息到指定消息频道的消息队列中,同时广播到频道内的每个用户
kfssdk.publish_channel_msg({
    _channel: ,
    _sub_type: ,
    _msg: 
});
//接收(订阅)已经存在的消息频道,一旦成功,后续频道的所有消息均会依次传递过来,直到频道解散或用户自身退出;参数含义与create_channel相同
kfssdk.subscribe_channel({
  _channel:, 
  //_password:password, 
  //_begin_service_seq:begin_service_seq, 
  //_last_msg_len:last_msg_len,
});
//取消订阅,不再关注和接收指定频道的消息,如果是创建者或master退出,服务器将自动挑选频道内另一用户为master
kfssdk.unsubscribe_channel({
  _channel:
});
//设置公共数据,公共数据不同于普通的频道消息,有以下特性:
  结果性:公共数据主要用于记录频道的最新状态的完整快照,它不关心历史和过程;而普通的频道消息是基于某个时间段内的流水式消息且更偏向过程的公共的数据;二者的作用并不重叠;
  无序性:记录无顺序之分;
  初始化:每次有新用户加入频道时,系统将自动通过onpublish_channel_msg事件将当前频道的公共数据全部发送给他;
  永久性:频道存活期间,除非用户显示删除,公共数据不会因时间和数量而自动删除;
  覆盖性:每个客户端可以同时修改同一公共数据,存储的总是按key值索引的最新记录,即数据存在反复覆盖问题;
  用户关联性:系统强制规定,当用户被删除时,以其uid作为key添加的数据(无论添加者是谁)均将被同时删除;
kfssdk.modify_channel({
  _channel:,
  _public_data: [key_data_struct]
});
  
其它kfssdk.init注册事件回调参见sdk初始化
其它方法参见sdk协议-客户端请求,每个客户端请求对应一个sdk方法,参数为协议结构体对象
例如客户端请求协议:
message read_file {
  optional string _path = 1;
  optional bool _for_bin = 2;
}
对应的sdk方法为:
kfssdk.read_file({
  _path: <要读取的文件路径名>,
  _for_bin: <是否为二进制模式读取,此项为可选参数,默读为false>
});
    
说明:
sdk方法主要包括两类:
一类为包装的本地实现系统类方法,例如kfssdk.appid()、kfssdk.is_self(uid);
另一类为网络协议请求类方法,例如kfssdk.read_file、kfssdk.publish_channel_msg,每个方法一一对应于客户端请求协议中的每个协议
对于本地包装方法请严格按sdk接口参数调用,而网络协议请求方法,我们此处仅简单列出少数几个示例作为调用说明,其它更详细完整的参数请参考sdk协议-客户端请求

尊敬的各位同行,平台持续开发优化中,文档可能更新不及时,请以sdk实际实现代码接口为准,不便之处敬请见谅。