im接口文档

皛皛皛

贡献于2017-04-18

字数:2625 关键词:

 IM接口文档 架构 ConfigServer 负责管理服务器集群配置信息。 UserServer 负责用户相关功能,包括信息设置,好友,黑名单,单聊,数据存储等。 GatewayServer负责接收客户端连接请求,处理所有客户端和服务器之间通讯消息的转发。 NameServer 负责账号注册和查询,GatewayServer查询。 用户标识 IM系统内部使用uid标识用户,uid是4字节的整数,在注册时由系统分配,可以通过账号名username查询uid。 通讯协议 客户端和服务器之间通讯采用tcp协议,报文采用二进制格式,由固定长度的报文头部和变长的报文消息体组成,消息体使用protobuf定义、序列化、反序列化,网络字节序。 总长度: 整个报文的长度,包括报文头部和消息体。 类型: 消息类型,每种消息都有对应的类型。 目标UID:消息的目标uid,如果消息不涉及其他用户,则填写自身uid,例如更新昵称。 序列号: 消息序列号,用于请求/响应的匹配,服务器原样返回,如果不需要匹配则不填。 protobuf消息:序列化之后的protobuf消息,定义为optional的字段可不填。 客户端和服务器之间的消息一般以请求/响应的形式成对出现,当服务器需要主动推送消息时,以通知消息的形式出现, 三种消息类型请求、响应、通知的结构是完全一样的,只有逻辑上的使用区别。 关键业务流程 注册 CREATE_USER_REQUEST = 521 ; //CreateUserRequest , name_server CREATE_USER_RESPONSE = 522 ; //QueryUidResponse, name_server 注册操作由服务端发起,客户端不需要此接口。 NameServer接收注册请求,根据唯一的用户名创建IM账号,返回注册结果和分配的uid。 查询UID QUERY_UID_REQUEST = 523 ; // QueryUidRequest , name_server QUERY_UID_RESPONSE = 524 ; // QueryUidResponse , name_server NameServer接收查询请求,根据用户名查询对应的uid,返回uid。 登录 1. 客户端通过平台api获取IM相关信息 返回 host , port , uid, secret_key 2. 客户端连接IM服务器(host,port),发起握手协议 HANDSHAKE_REQUEST = 513 ; //HandshakeRequest HANDSHAKE_RESPONSE = 514 ; //HandshakeResponse 返回salt 3. 客户端发起登录请求,提交(uid,salt,token) , token=md5(secret_key+salt) LOGIN_REQUEST = 517 ; //LoginRequest LOGIN_RESPONSE = 518 ; //LoginResponse OFFLINE_USER_MESSAGE_NOTIFY = 918 ; //MessageList 返回 error_code , error_code=0表示成功,完成登录过程 登录成功后服务器主动发送离线消息列表 4. 登录成功后处理各种业务逻辑,定期发送心跳 HEARTBEAT_REQUEST = 515 ; //HeartbeatRequest HEARTBEAT_RESPONSE = 516 ; //HeartbeatResponse 查询用户资料 GET_USER_REQUEST = 791 ; //NullBody GET_USER_RESPONSE = 792 ; //GetUserResponse GET_MULTI_USER_REQUEST = 791 ; //GetMultiUserRequest GET_MULTI_USER_RESPONSE = 792 ; //GetUserResponse 个人设置 UPDATE_USER_REQUEST = 789 ; //UpdateUserRequest UPDATE_USER_RESPONSE = 790 ; //CommonResponse SET_CLIENT_DATA_REQUEST = 793 ; //CustomDataList SET_CLIENT_DATA_RESPONSE = 794 ; //CommonResponse GET_CLIENT_DATA_REQUEST = 795 ; //GetClientDataRequest GET_CLIENT_DATA_RESPONSE = 796 ; //CustomeDataList message CustomData { optional int32 data_key = 1 [default=0] ; optional int32 flags = 2 [default =0] ; optional string data_value =3 [default=""] ; } 好友、黑名单 RELATION_LIST_REQUEST = 773 ; //RelationListRequest RELATION_LIST_RESPONSE = 774 ; //RelationListResponse SET_RELATION_REQUEST = 775 ; // SetRelationRequest SET_RELATION_RESPONSE = 776 ; // CommonResponse REMOVE_RELATION_REQUEST = 777 ; // RemoveRelationRequest REMOVE_RELATION_RESPONSE = 778 ; // CommonResponse APPLY_FRIEND_NOTIFY = 914 ; //被申请者收到一条单聊消息MessageData中的msg_type字段值 enum RelationType { RELATION_BLACKLIST = 1 ; //黑名单 RELATION_FRIEND = 2 ; //好友 } 单聊消息 USER_MESSAGE_REQUEST = 785 ; //UserMessageRequest USER_MESSAGE_RESPONSE = 786 ; //CommonResponse FEEDBACK_REQUEST = 787 ; //FeedbackRequest FEEDBACK_RESPONSE = 788 ; //CommonResponse USER_MESSAGE_NOTIFY = 917 ; //MessageData 接收者收到通知消息,MessageData中的msg_type值为USER_MESSAGE_NOTIFY

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ]
0 人已下载

下载文档

相关文档