protobuf入门到高手教程

protobuf入门教程


protobuf全称Protocol Buffers,简称GPBPB ,是QQIM采用的协议,比XMLXMPP(环信)、JSON、结构体等所有传输效果都高的一种传输协议,由谷歌发明,其效率一般是XML XMPP20倍以上,JSON10倍以上,是一种游戏中普遍采用的IM消息协议,所以你非常有必要认真读一下本博文的入门教程,并运行作者的Demo


Demo以直播聊天室为假设的Demo,一般消息类型有50100种左右,简单起见,这里举5种消息类型

enum MsgType : Int {

    case join = 0

    case leave = 1

    case text = 2

    case gift = 3

    case heartBeat = 8

}

分别表示进入主播室离开主播室 文本消息 礼物图片或GIF动画消息 心跳包消息,其他如广告、系统广播等不在本Demo演示


(本文要求读者有一定的socket swift3基础,再往下阅读)



摘要


1、制作协议格式

syntax = "proto2";


message UserInfo {

required int32 level = 1;

required string name = 2;

required string iconURL = 3;

}


2、制作协议的对象数据

    fileprivate lazy var user : UserInfo.Builder = {

        let user = UserInfo.Builder()

        user.level = Int32(arc4random_uniform(24))

        user.name = "targetcloud\(arc4random_uniform(10))"

        user.iconUrl = "icon\(arc4random_uniform(2))"

        return user

    }()


3、剩下的IM核心代码其实只有两行,要发送消息时

let data = (try! user.build()).data()

收到消息时

UserInfo.parseFrom(data : msgData)



详细使用


1、环境安装

找到Github

https://github.com/alexeyxo/protobuf-swift


在命令行中依次执行下面代码

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

brew install libtool

brew link libtool

brew install automake

brew install protobuf

brew install protobuf-swift


如下图


2、导入cocoapod

podfile中加入

pod 'ProtocolBuffers-Swift'

安装podpod install


如下图


3、编写IMMessage.proto

syntax = "proto2"

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值