-
Notifications
You must be signed in to change notification settings - Fork 67
Developer Guide
pzheng edited this page Dec 24, 2021
·
19 revisions
目前 IM 采用 Protobuf 作为数据交换格式。Protobuf 需要一个文件来定义数据结构,通常该文件的后缀名为 .proto
。目前 IM 协议的 .proto 文件在 avoscloud-push 仓库中维护。当 IM 协议有新的数据结构引入时,SDK 需要将 .proto
文件编译成目标平台的源文件。对于 Objective-C SDK,步骤如下:
- 确保当前系统安装了 Protobuf "~> 3.3.0"(macOS 推荐使用 brew 安装);
- 下载 .proto 文件,将其重命名为
messages.proto.orig
; - 在 messages.proto.orig 文件的目录,执行命令
mkdir objc && protoc --proto_path=. --objc_out=objc messages.proto.orig
; - 将 objc 目录下的源文件拷贝到 SDK 的 AVOS/AVOSCloudIM/Commands 目录下;
- 执行 AVOS/AVOSCloudIM/Commands/subst.tcl 来修改代码中的符号前缀;
- 编译 IM 模块,确认是否一切正常。
登录是 {"cmd":"login","appId":"nWV9ebO1JMUIE5K4gBS1i1MA","installationId":"w3", "i": 111, "service":1},登出是 {"cmd":"logout","appId":"nWV9ebO1JMUIE5K4gBS1i1MA","installationId":"w3", "i": 111, "service":1}
消息是 {"cmd":"data","msg":[{"alert":"test","_expiration_time":"2016-08-02T08:28:23.426Z","_channel":"push-tester"}],"ids":["WoT00LD7jLr6q9ET"],"appId":"d6xq05dmb08j5z9jjawnl88ns0072uwubvnzfha3nw1xojbr","installationId":"_push-tester"}
就这三种消息
消息中 msg 和 ids 都是数组,他们俩按数组内顺序一一对应
先占位,后面再规范化。