美文网首页iOS技术
iOS 自建IM即时通讯

iOS 自建IM即时通讯

作者: lym不解释 | 来源:发表于2019-11-15 21:36 被阅读0次

一、原由

其实现在有很多大厂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环境设置:
2.1 下载、解压protobuf文件: https://github.com/protocolbuffers/protobuf/releases
2.2 Protocol Buffers编译时使用一些其他工具需要手动安装,终端顺序执行下面后就可以转换proto文件为ObjC文件了。

安装Homebrew, 如果有直接跳过,一般mac环境都有。

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

安装 Protocol Buffer 依赖 工具

brew install autoconf automake libtool

cd 进入 protobuf解压后的文件夹依次执行

./autogen.sh

./configure

make

make check

sudo make install

- objectivec/DevTools/full_mac_build.sh

执行完 protobuf解压后的文件夹 src目录下生成了protoc二进制文件。

3.转换proto
转换需要在src目录执行,最好在src目录下新建两个文件夹,protocols源文件夹和output输出文件夹,将创建的xxx.proto放在protocols文件夹下,执行命令,如果有多个文件,一定要用空格分割。

// 格式
protoc --proto_path=protocols文件夹路径 --objc_out=输出文件夹路径 xxx1.proto xxx2.proto

protoc --proto_path=/Users/mni/Desktop/protobuf-3.12.1/src/protocols --objc_out=/Users/mni/Desktop/protobuf-3.12.1/src/output msg.proto conversation.proto
  1. 集成到工程中所有的xxx.pbobjc.m 都是mrc的Complier Flags设为-fno-objc-arc
WX20191115-213408@2x.png

三、IMUI编写

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


WX20191121-155443@2x.png
iOS 自建IM即时通讯 iOS 自建IM即时通讯

相关文章

  • iOS 自建IM即时通讯

    一、原由 其实现在有很多大厂IM的第三方,云信、融云、TIM,本人都有在项目中集成过,第三方好处就是你不用太多关注...

  • iOS基于Socket.io即时通讯IM实现,WebRTC实现视

    Socket.io-FLSocketIM-iOS 基于Socket.io iOS即时通讯客户端 iOS IM C...

  • iOS自建IM相关

    一、涉及到的第三方库 1、GCDAsyncSocket GCDAsyncSocket是一个封装好的,帮助开发者完成...

  • iOS开发拓展篇-XMPP简单介绍

    iOS开发拓展篇-XMPP简单介绍 一、即时通讯简单介绍 1、简单说明 即时通讯技术(IM)支持用户在线实时交谈。...

  • iOS 即时通讯IM 及webSocket

    iOS 简易即时通讯IM 及webSocket 首先我的即时通讯只用于APP的在线客服使用,实现了一些简单...

  • 即时聊天

    六个免费开源的即时通讯软件源代码 常见即时通讯:网易IM 、腾讯IM、环信IM、融云IM、leancloud IM...

  • 精彩好文

    即时通讯IM技术领域基础篇 即时通讯IM技术领域提高篇

  • iOS 即时通讯IM

    前言 本文主要是对iOS各种IM实现方案调研 并且提供一些选型、实现细节以及优化的建议。 注:文中的所有的代码示例...

  • 自建iOS测试服务实践

    背景 没有自建iOS测试服务,iOS测试大多依赖蒲公英测试平台或者fir.im,若没有遇到什么问题,继续使用第三方...

  • iOS IM即时通讯小结:WebSocket

    参考网站 即时通讯网 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》 大牛博客IM 即时通讯技术...

网友评论

    本文标题:iOS 自建IM即时通讯

    本文链接:https://www.haomeiwen.com/subject/pbrmrctx.html