iOS 自建IM即时通讯

一、原由

其实现在有很多大厂IM的第三方,云信、融云、TIM,本人都有在项目中集成过,第三方好处就是你不用太多关注底层实现,demo里面几乎有完整的使用案例,麻烦的地方就是根据公司业务、UI不同,第三方IM库实现起来总是有很多麻烦。我们自建IM选择的是WebScoket协议和ProtocolBuffer的传输格式实现IM,iOS Android H5都需要聊天功能呢。

我在这里记录一下实现过程,包括:框架选择、protobuf使用、UI实现、数据库、业务集成。

二、WebScoket + ProtocolBuffer 实现IM

2.1框架选择:

WebSocket框架使用Facebook的:SocketRocket

ProtocolBuffer框架使用Google的:protobuf

2.2protobuf使用

1.创建 proto 文件:一般后台创建好、前端只需要转换成对应语言。

2.mac环境设置,Protocol Buffers编译时使用一些其他工具需要手动安装,终端顺序执行下面后就可以转换proto文件为ObjC文件了。

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

brew install autoconf automake libtool

./autogen.sh

./configure

make

make check

sudo make install

- objectivec/DevTools/full_mac_build.sh

3.转换proto

protoc --proto_path=输入文件夹路径 --objc_out=输出文件夹路径/xxx1.proto, xxx2. proto

  1. 集成到工程中所有的xxx.pbobjc.m 都是mrc的Complier Flags设为-fno-objc-arc

三、IMUI编写

目前效果图:文本消息、图片消息、语言消息。根据数据是对方还是自己发送,动态适配UI。


实现:

你可能感兴趣的:(iOS 自建IM即时通讯)