环信_iOS

环信_iOS

2
回复

环信IM的开发者用户体验就靠你了 !!【内推职位招聘】环信Web/android/ios前端技术支持工程师 环信

开发讨论beyond 回复了问题 • 3 人关注 • 216 次浏览 • 2020-06-28 10:24 • 来自相关话题

8
评论

【源码下载】一款使用环信实现的开源灵魂社交APP(含服务器) 猿匹配 开源

开发讨论beyond 发表了文章 • 20103 次浏览 • 2019-07-01 10:48 • 来自相关话题

#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。






  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

























  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖npm install
6.全局安装pm2npm install pm2 -g 
7.运行 vmshell.sh
 




扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
  查看全部
#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。

猿匹配_logo_副本.png


  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

1.png

2.png

3.png

4.png

5.png

6.png

  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖
npm install

6.全局安装pm2
npm install pm2 -g
 
7.运行 vmshell.sh
 
环信冬冬_副本.jpg

扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
 
4
最佳

获取token 环信_iOS

开发讨论dajunzhu 回复了问题 • 5 人关注 • 8470 次浏览 • 2020-06-15 10:30 • 来自相关话题

1
最佳

想知道在环信iOS新版demo中如何实现会话列表的会话置顶吗?看这里 环信_iOS

开发讨论luzhu 回复了问题 • 2 人关注 • 391 次浏览 • 2020-05-29 12:19 • 来自相关话题

1
评论

想知道在环信iOS新版demo中如何实现会话列表的会话置顶吗?看这里 环信_iOS

开发讨论donghai 发表了文章 • 238 次浏览 • 2020-05-28 16:55 • 来自相关话题

实现思路:
用会话的ext来存会话是否为置顶的状态以及存会话置顶时的时间,然后在刷新会话列表,会话列表排序时,判断会话ext中是否含有置顶状态的字段,然后在将会话列表重新排序。

这里的会话列表排序分两个层级:
1.置顶状态的会话排序,根据会话置顶时的时间排序
2.置顶会话与没有置顶会话的排序
 
先下载链接中的demo,在demo中搜索"会话置顶"即可看到相关代码实现,该demo是基于环信iOS 3.6.6版本demo实现的。

链接:https://pan.baidu.com/s/1jQ6sO4FA-Hnvscc4OcQK4w  密码:fs2w
  查看全部
实现思路:
用会话的ext来存会话是否为置顶的状态以及存会话置顶时的时间,然后在刷新会话列表,会话列表排序时,判断会话ext中是否含有置顶状态的字段,然后在将会话列表重新排序。

这里的会话列表排序分两个层级:
1.置顶状态的会话排序,根据会话置顶时的时间排序
2.置顶会话与没有置顶会话的排序
 
先下载链接中的demo,在demo中搜索"会话置顶"即可看到相关代码实现,该demo是基于环信iOS 3.6.6版本demo实现的。

链接:https://pan.baidu.com/s/1jQ6sO4FA-Hnvscc4OcQK4w  密码:fs2w
 
6
回复

为什么IOS 集成之后 提示信息显示的都是英文的? 环信技术支持 环信_iOS

iOS 讨论区zhd571996497 回复了问题 • 4 人关注 • 3969 次浏览 • 2020-05-27 17:09 • 来自相关话题

1
回复

[client logout:YES]报错 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1278 次浏览 • 2020-05-27 17:04 • 来自相关话题

1
回复

APNS推送设置 环信_iOS

开发讨论咚咚 回复了问题 • 2 人关注 • 375 次浏览 • 2020-05-26 15:02 • 来自相关话题

1
回复

android 不继承easeui 如何播放语音 环信_iOS

开发讨论lizg 回复了问题 • 2 人关注 • 458 次浏览 • 2020-05-18 19:48 • 来自相关话题

3
回复

3.5.4版本Demo,发送完一条录音消息之后,按iPhone的音量键没有反应 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 2476 次浏览 • 2020-05-08 16:16 • 来自相关话题

3
回复

集成环信UI时,放入helper就报错 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 842 次浏览 • 2020-04-29 17:48 • 来自相关话题

3
回复

iOS-聊天室消息 环信_iOS 聊天室

开发讨论疯狂的柚子 回复了问题 • 4 人关注 • 2951 次浏览 • 2020-03-31 11:06 • 来自相关话题

3
回复

iOS EaseUI 只使用UI页面,不使用发生、接收消息,怎么处理 环信_iOS

开发讨论aleequan 回复了问题 • 5 人关注 • 3177 次浏览 • 2020-03-11 07:05 • 来自相关话题

1
回复

设置了苹果手机的消息推送,但锁屏状态下不提示消息。 环信_iOS

开发讨论kijieoeew 回复了问题 • 3 人关注 • 2041 次浏览 • 2020-03-11 03:06 • 来自相关话题

3
回复

请问环信支持直播吗? 环信_iOS

开发讨论美国队长 回复了问题 • 4 人关注 • 3872 次浏览 • 2020-02-28 10:43 • 来自相关话题

2
回复

环信聊天室,用户进入聊天室以后,环信自动给推10条消息,如何禁用这个自动推送 环信_iOS 环信_Android 聊天室

开发讨论kijieoeew 回复了问题 • 3 人关注 • 3055 次浏览 • 2020-02-27 14:46 • 来自相关话题

2
最佳

环信聊天室会话,是不是在用户离开聊天室的时候,会话就清零了? 环信_iOS 环信移动客服 聊天室

回复

开发讨论疯狂的柚子 回复了问题 • 1 人关注 • 1206 次浏览 • 2020-02-24 10:18 • 来自相关话题

4
回复

iOS APP登录环信后挂后台1分钟就被重启 环信_iOS

开发讨论liyaoquan 回复了问题 • 4 人关注 • 3408 次浏览 • 2020-02-14 18:03 • 来自相关话题

1
回复

EMMessage使用了私有api 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1155 次浏览 • 2020-01-20 18:23 • 来自相关话题

1
回复

环信推送问题 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1193 次浏览 • 2019-12-31 16:54 • 来自相关话题

2
回复

iOS13 加入视频会议崩溃 环信_iOS

开发讨论mikeyJiang 回复了问题 • 3 人关注 • 5183 次浏览 • 2019-12-28 15:07 • 来自相关话题

1
回复

怎么导出环信当天所有聊天记录 环信_RestAPI 环信_管理后台 环信_WebIM 环信_Android 环信_iOS

开发讨论lizg 回复了问题 • 2 人关注 • 1511 次浏览 • 2019-12-23 17:27 • 来自相关话题

3
回复

从好友列表调到聊天界面,第一次跳转的时候会出现卡顿现象,这是为什么 求解决 环信_iOS

开发讨论Z 回复了问题 • 3 人关注 • 2561 次浏览 • 2019-12-23 13:42 • 来自相关话题

2
回复

cmdMessagesDidReceive不调用 环信_iOS

开发讨论mwang 回复了问题 • 2 人关注 • 1033 次浏览 • 2019-12-20 10:12 • 来自相关话题

1
回复

iOS 设置群push关闭不起作用 环信_iOS iOS push无法关闭

开发讨论诠释、Javascript   回复了问题 • 2 人关注 • 2717 次浏览 • 2019-12-18 10:17 • 来自相关话题

1
回复

创建群主传入的message,被邀用户回调message为空 有专职工程师值守 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1114 次浏览 • 2019-12-17 17:49 • 来自相关话题

1
回复

messagesDidRead回调不执行 环信_iOS

开发讨论kijieoeew 回复了问题 • 2 人关注 • 945 次浏览 • 2019-12-17 17:06 • 来自相关话题

条新动态, 点击查看
futureHome

futureHome 回答了问题 • 2016-01-01 23:46 • 4 个回复 不感兴趣

获取token

赞同来自:

2095
 
2095
 
joker

joker 回答了问题 • 2017-08-07 17:52 • 2 个回复 不感兴趣

iOS集成环信移动客服崩溃。dyld:Library not loaded

赞同来自:

解决了啊。看网上说是不适配低版本。但是我的iOS系统是最新的。不知道什么原因。在这里说一下解决方法吧。方便后来的人看一下。在项目的targets ->Build Phases ->Link Binary With Libraires里面找到你报错的... 显示全部 »
解决了啊。看网上说是不适配低版本。但是我的iOS系统是最新的。不知道什么原因。在这里说一下解决方法吧。方便后来的人看一下。在项目的targets ->Build Phases ->Link Binary With Libraires里面找到你报错的那个库。将后面的选项改为Optional就行了
设置autologin为YES,解决。
设置autologin为YES,解决。
donghai

donghai 回答了问题 • 2018-05-25 14:44 • 1 个回复 不感兴趣

iOS怎么显示桌面角标数量。

赞同来自:

这个要用系统方法,遍历会话列表,未读消息数累加之后,传给
UIApplication *application = [UIApplication sharedApplication];    [application setApplicationIconBad... 显示全部 »
这个要用系统方法,遍历会话列表,未读消息数累加之后,传给
UIApplication *application = [UIApplication sharedApplication];    [application setApplicationIconBadgeNumber:unreadCount];
KevinGong

KevinGong 回答了问题 • 2018-05-21 14:01 • 1 个回复 不感兴趣

IOS和安卓不能互踢

赞同来自:

看到官网有文档这么写的
 
8687
 
所以说默认的行为有可能就是不同终端的同一账号可以同时登录。
 
看到官网有文档这么写的
 
8687
 
所以说默认的行为有可能就是不同终端的同一账号可以同时登录。
 
你的Podfile改成下面这样 pod 'SVProgressHUD'
pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git', :tag... 显示全部 »
你的Podfile改成下面这样 pod 'SVProgressHUD'
pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git', :tag => ‘3.4.1’ 然后 `pod update`.
 
不过建议把使用 `SVProgressHUD` 的地方改为 `MBProgressHUD`
 

 
链接:https://pan.baidu.com/s/1nm0ojSb7rK7EEMdS1DEysw 密码:03yf
提交工单给了百度网盘地址,可下载修复过的SDK,替换下就好了
链接:https://pan.baidu.com/s/1nm0ojSb7rK7EEMdS1DEysw 密码:03yf
提交工单给了百度网盘地址,可下载修复过的SDK,替换下就好了
KevinGong

KevinGong 回答了问题 • 2018-05-25 18:52 • 2 个回复 不感兴趣

ld: framework not found libHyphenateVideoRecorderPlugin

赞同来自:

Library Search Paths 要把你的.a文件路径包涵进去
Library Search Paths 要把你的.a文件路径包涵进去
配合环信的透传消息, 去更新本地db中的message对象。
 
8742
 
配合环信的透传消息, 去更新本地db中的message对象。
 
8742
 
http://www.imgeek.org/video/41
 
这是官方的集成教程,仔细跟着一步一步操作。
http://www.imgeek.org/video/41
 
这是官方的集成教程,仔细跟着一步一步操作。
KevinGong

KevinGong 回答了问题 • 2018-06-08 15:50 • 2 个回复 不感兴趣

ios 多选聊天记录操作

赞同来自:

canEditRowAtIndexPath 方法中根据 indexPath 拿到message 判断如果是 时间戳返回NO
canEditRowAtIndexPath 方法中根据 indexPath 拿到message 判断如果是 时间戳返回NO
我也和你同样的问题,请问解决了吗?
我也和你同样的问题,请问解决了吗?
解决了,在入口类中设置 HChatClient 的代理,如下:
HChatClient.shared().chatManager.add(self, delegateQueue: nil)
并实现代理方法
extension AppDelegate: HCha... 显示全部 »
解决了,在入口类中设置 HChatClient 的代理,如下:
HChatClient.shared().chatManager.add(self, delegateQueue: nil)
并实现代理方法
extension AppDelegate: HChatClientDelegate,HChatDelegate {
    func messagesDidReceive(_ aMessages: [Any]!) {
        //有新消息处理未读红点
        NotificationCenter.default.post(name: NSNotification.Name(rawValue: "newMessageComeNotification"), object: nil)
    }
}
就可以在全局接受到客服发送过来的消息了!
KevinGong

KevinGong 回答了问题 • 2018-06-22 12:05 • 1 个回复 不感兴趣

ios 透传消息发送问题

赞同来自:

你当前和XX聊天,就会生成一个和你XX的一个conversation对象, 取这个对象的id。
 
在你的例子里应该是取和你正在视频通话的这个chatter。
你当前和XX聊天,就会生成一个和你XX的一个conversation对象, 取这个对象的id。
 
在你的例子里应该是取和你正在视频通话的这个chatter。
KevinGong

KevinGong 回答了问题 • 2018-06-26 11:03 • 1 个回复 不感兴趣

ios怎样自定义消息

赞同来自:

继承 EaseMessageCell  或者 EaseBaseMessageCell, 根据自己的需求 去灵活选择
继承 EaseMessageCell  或者 EaseBaseMessageCell, 根据自己的需求 去灵活选择
wa172126691

wa172126691 回答了问题 • 2018-06-26 11:17 • 4 个回复 不感兴趣

ios环信自定义气泡的外边距怎么调整

赞同来自:

继承 EaseBaseMessageCell来做的
继承 EaseBaseMessageCell来做的
huyueling

huyueling 回答了问题 • 2018-07-17 17:18 • 1 个回复 不感兴趣

IOS推送怎么做?

赞同来自:

http://docs.easemob.com/im/300iosclientintegration/apns
http://docs.easemob.com/im/300iosclientintegration/apns
企业证书肯定可以用apns推送。
 
先下载一个mac上的测试软件 APNSPush, 测试推送, 找到正确的证书
 
然后导出证书上传到 环信后台。
企业证书肯定可以用apns推送。
 
先下载一个mac上的测试软件 APNSPush, 测试推送, 找到正确的证书
 
然后导出证书上传到 环信后台。
8957
这个地方添加 Hyphenate.framework.
8957
这个地方添加 Hyphenate.framework.
beyond

beyond 回答了问题 • 2018-11-22 18:33 • 3 个回复 不感兴趣

swift 集成视频为什么看不了呢?

赞同来自:

您指的的是《Swift_SDK集成参考视频观看次数:12446》吗?
播放跳转到腾讯课堂了,是环信在腾讯课堂上开展的公开课,还有别的一教学视频,用QQ号就可以登陆播放。
 
如果实在播放不了的话可以私聊我发你视频的播放地址。
您指的的是《Swift_SDK集成参考视频观看次数:12446》吗?
播放跳转到腾讯课堂了,是环信在腾讯课堂上开展的公开课,还有别的一教学视频,用QQ号就可以登陆播放。
 
如果实在播放不了的话可以私聊我发你视频的播放地址。
beyond

beyond 回答了问题 • 2018-12-21 11:07 • 1 个回复 不感兴趣

集成环信im之后,app无法正常驻扎在后台.

赞同来自:

首先这个问题就是因为国内手机厂商对 android rom 进行了定制,对后台服务以及运行在后台的程序进行了严格的限制,微信等这些大厂商的 app 都已经通过和设备厂商合作在安装时都已经加入了系统的白名单,因此设备并不会限制对方 app 在后台运行;解决方案有... 显示全部 »
首先这个问题就是因为国内手机厂商对 android rom 进行了定制,对后台服务以及运行在后台的程序进行了严格的限制,微信等这些大厂商的 app 都已经通过和设备厂商合作在安装时都已经加入了系统的白名单,因此设备并不会限制对方 app 在后台运行;解决方案有一下三点:

1、引导用户把当前 app 加入到设备的白名单中,解除设备对 app 的限制;

2、小米和华为设备可以集成对应的推送实现在app 被干掉后依然收推送通知;

3、可以自己在 app 端实现守护进程的方式,让 app 在系统级别自动回收的情况下减少被杀死的概率,这种方式对用户主动回收无效,可以参考这篇文章http://www.imgeek.org/article/825308797
没有做这个功能,可以自己实现。
PC端点击查看就传一个状态到服务器记录,再调用手机端的消除红点接口。
没有做这个功能,可以自己实现。
PC端点击查看就传一个状态到服务器记录,再调用手机端的消除红点接口。
kijieoeew

kijieoeew 回答了问题 • 2019-04-03 18:08 • 2 个回复 不感兴趣

会话列表如何刷新。

赞同来自:

您好,参考demo,在收到消息的回调中做处理。
您好,参考demo,在收到消息的回调中做处理。
最初始的需求是想拿到用户的聊天室列表,我的代码
dataArray = (EMClient.shared()?.chatManager.getAllConversations())
但是当我加入到一个聊天室,并成功通过环信SDK发送信息后,重启APP,每次... 显示全部 »
最初始的需求是想拿到用户的聊天室列表,我的代码
dataArray = (EMClient.shared()?.chatManager.getAllConversations())
但是当我加入到一个聊天室,并成功通过环信SDK发送信息后,重启APP,每次都获取不到聊天室列表。
是会话消失了吗?还是我的获取方式有问题??
麻烦看到的帮帮忙回复一下,哪怕提供一个思路也好。
经典,小伙伴们可以参考哦
经典,小伙伴们可以参考哦
2
回复

环信IM的开发者用户体验就靠你了 !!【内推职位招聘】环信Web/android/ios前端技术支持工程师 环信

开发讨论beyond 回复了问题 • 3 人关注 • 216 次浏览 • 2020-06-28 10:24 • 来自相关话题

8
评论

【源码下载】一款使用环信实现的开源灵魂社交APP(含服务器) 猿匹配 开源

开发讨论beyond 发表了文章 • 20103 次浏览 • 2019-07-01 10:48 • 来自相关话题

#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。






  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

























  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖npm install
6.全局安装pm2npm install pm2 -g 
7.运行 vmshell.sh
 




扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
  查看全部
#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。

猿匹配_logo_副本.png


  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

1.png

2.png

3.png

4.png

5.png

6.png

  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖
npm install

6.全局安装pm2
npm install pm2 -g
 
7.运行 vmshell.sh
 
环信冬冬_副本.jpg

扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
 
2
回复

两个ios app 怎么聊天? 环信_iOS

开发讨论Zero 回复了问题 • 3 人关注 • 1684 次浏览 • 2016-04-25 11:25 • 来自相关话题

2
回复

环信IM的开发者用户体验就靠你了 !!【内推职位招聘】环信Web/android/ios前端技术支持工程师 环信

回复

开发讨论beyond 回复了问题 • 3 人关注 • 216 次浏览 • 2020-06-28 10:24 • 来自相关话题

8
评论

【源码下载】一款使用环信实现的开源灵魂社交APP(含服务器) 猿匹配 开源

开发讨论beyond 发表了文章 • 20103 次浏览 • 2019-07-01 10:48 • 来自相关话题

#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。






  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

























  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖npm install
6.全局安装pm2npm install pm2 -g 
7.运行 vmshell.sh
 




扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
  查看全部
#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。

猿匹配_logo_副本.png


  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

1.png

2.png

3.png

4.png

5.png

6.png

  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖
npm install

6.全局安装pm2
npm install pm2 -g
 
7.运行 vmshell.sh
 
环信冬冬_副本.jpg

扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
 
4
最佳

获取token 环信_iOS

回复

开发讨论dajunzhu 回复了问题 • 5 人关注 • 8470 次浏览 • 2020-06-15 10:30 • 来自相关话题

1
最佳

想知道在环信iOS新版demo中如何实现会话列表的会话置顶吗?看这里 环信_iOS

回复

开发讨论luzhu 回复了问题 • 2 人关注 • 391 次浏览 • 2020-05-29 12:19 • 来自相关话题

6
回复

为什么IOS 集成之后 提示信息显示的都是英文的? 环信技术支持 环信_iOS

回复

iOS 讨论区zhd571996497 回复了问题 • 4 人关注 • 3969 次浏览 • 2020-05-27 17:09 • 来自相关话题

1
回复

[client logout:YES]报错 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1278 次浏览 • 2020-05-27 17:04 • 来自相关话题

1
回复

APNS推送设置 环信_iOS

回复

开发讨论咚咚 回复了问题 • 2 人关注 • 375 次浏览 • 2020-05-26 15:02 • 来自相关话题

1
回复

android 不继承easeui 如何播放语音 环信_iOS

回复

开发讨论lizg 回复了问题 • 2 人关注 • 458 次浏览 • 2020-05-18 19:48 • 来自相关话题

3
回复

3.5.4版本Demo,发送完一条录音消息之后,按iPhone的音量键没有反应 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 2476 次浏览 • 2020-05-08 16:16 • 来自相关话题

3
回复

集成环信UI时,放入helper就报错 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 842 次浏览 • 2020-04-29 17:48 • 来自相关话题

3
回复

iOS-聊天室消息 环信_iOS 聊天室

回复

开发讨论疯狂的柚子 回复了问题 • 4 人关注 • 2951 次浏览 • 2020-03-31 11:06 • 来自相关话题

3
回复

iOS EaseUI 只使用UI页面,不使用发生、接收消息,怎么处理 环信_iOS

回复

开发讨论aleequan 回复了问题 • 5 人关注 • 3177 次浏览 • 2020-03-11 07:05 • 来自相关话题

1
回复

设置了苹果手机的消息推送,但锁屏状态下不提示消息。 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 3 人关注 • 2041 次浏览 • 2020-03-11 03:06 • 来自相关话题

3
回复

请问环信支持直播吗? 环信_iOS

回复

开发讨论美国队长 回复了问题 • 4 人关注 • 3872 次浏览 • 2020-02-28 10:43 • 来自相关话题

2
回复
2
最佳

环信聊天室会话,是不是在用户离开聊天室的时候,会话就清零了? 环信_iOS 环信移动客服 聊天室

回复

开发讨论疯狂的柚子 回复了问题 • 1 人关注 • 1206 次浏览 • 2020-02-24 10:18 • 来自相关话题

4
回复

iOS APP登录环信后挂后台1分钟就被重启 环信_iOS

回复

开发讨论liyaoquan 回复了问题 • 4 人关注 • 3408 次浏览 • 2020-02-14 18:03 • 来自相关话题

1
回复

EMMessage使用了私有api 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1155 次浏览 • 2020-01-20 18:23 • 来自相关话题

1
回复

环信推送问题 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1193 次浏览 • 2019-12-31 16:54 • 来自相关话题

2
回复

iOS13 加入视频会议崩溃 环信_iOS

回复

开发讨论mikeyJiang 回复了问题 • 3 人关注 • 5183 次浏览 • 2019-12-28 15:07 • 来自相关话题

1
回复

怎么导出环信当天所有聊天记录 环信_RestAPI 环信_管理后台 环信_WebIM 环信_Android 环信_iOS

回复

开发讨论lizg 回复了问题 • 2 人关注 • 1511 次浏览 • 2019-12-23 17:27 • 来自相关话题

3
回复

从好友列表调到聊天界面,第一次跳转的时候会出现卡顿现象,这是为什么 求解决 环信_iOS

回复

开发讨论Z 回复了问题 • 3 人关注 • 2561 次浏览 • 2019-12-23 13:42 • 来自相关话题

2
回复

cmdMessagesDidReceive不调用 环信_iOS

回复

开发讨论mwang 回复了问题 • 2 人关注 • 1033 次浏览 • 2019-12-20 10:12 • 来自相关话题

1
回复

iOS 设置群push关闭不起作用 环信_iOS iOS push无法关闭

回复

开发讨论诠释、Javascript   回复了问题 • 2 人关注 • 2717 次浏览 • 2019-12-18 10:17 • 来自相关话题

1
回复

创建群主传入的message,被邀用户回调message为空 有专职工程师值守 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 1114 次浏览 • 2019-12-17 17:49 • 来自相关话题

1
回复

messagesDidRead回调不执行 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 945 次浏览 • 2019-12-17 17:06 • 来自相关话题

1
回复

iOS 环信demo国际化的key都没使用呢,是没实现吗? 环信_iOS

回复

开发讨论kijieoeew 回复了问题 • 2 人关注 • 980 次浏览 • 2019-12-17 17:02 • 来自相关话题

2
回复

环信IM的开发者用户体验就靠你了 !!【内推职位招聘】环信Web/android/ios前端技术支持工程师 环信

回复

开发讨论beyond 回复了问题 • 3 人关注 • 216 次浏览 • 2020-06-28 10:24 • 来自相关话题

8
评论

【源码下载】一款使用环信实现的开源灵魂社交APP(含服务器) 猿匹配 开源

开发讨论beyond 发表了文章 • 20103 次浏览 • 2019-07-01 10:48 • 来自相关话题

#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。






  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

























  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖npm install
6.全局安装pm2npm install pm2 -g 
7.运行 vmshell.sh
 




扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
  查看全部
#前言
近期,环信热心开发者-穿裤衩闯天下使用环信IM开发了一款实时聊天应用,包含简单的服务器端,现在正式开源给小伙伴们。感兴趣的同学可以一起搞一下哦,详细介绍请往下看。

猿匹配_logo_副本.png


  上代码
服务器:VMServer
客户端:VMMatch
 
 #VMMatch
猿匹配 —— 国内首个程序猿非严肃婚恋交友应用,让我们一言不合就来场匹配吧
 
#介绍#
首先说下中文名:为什么叫这个名字呢,因为这是一个程序猿(媛)之间匹配交流的应用啊其实这是一个使用环信 IM 开发的一款开源聊天项目,涵盖了时下流行的一些聊天元素,同时已将 IM 功能封装为单独库,可以直接引用,方便使用
项目还处在初期阶段,还有许多功能需要实现,有兴趣的可以一起来
项目资源均来自于互联网,如果有侵权请联系我
 
 #下载体验
猿匹配 小米商店 审核中
猿匹配 Google Play
 
  #项目截图

1.png

2.png

3.png

4.png

5.png

6.png

  
 #开发环境
项目基本属于在最新的Android开发环境下开发,使用Java8的一些新特性,比如Lambda表达式,
然后项目已经适配Android6.x以上的动态权限适配,以及7.x的文件选择,和8.x的通知提醒等;
· Mac OS 10.14.4
· Android Studio 3.3.2
  #项目模块儿
本项目包含两部分:
一部分是项目主模块app,这部分主要包含了项目的业务逻辑,比如匹配、信息修改、设置等
另一部分是封装成library的vmim,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,
只需要将vmim以module导入到自己的项目中就行了,具体使用方式参见项目app模块儿;
 
  #功能与 TODO
IM部分功能
· [x] 链接监听
· [x] 登录注册
· [x] 会话功能
      。[x] 置顶
      。[x] 标为未读
      。[x] 删除与清空
      。[x] 草稿功能
· [x] 消息功能
      。[x] 下拉加载更多
      。[x] 消息复制(仅文字类消息)
      。[x] 消息删除
      。[x] 文本+Emoji消息收发
      。[x] 大表情消息收发
      。[x] 图片消息
        ~[x] 查看大图
        ~[ ] 保存图片
      。[x] 语音消息
        ~[x] 语音录制
        ~[x] 语音播放(可暂停,波形待优化)
        ~[x] 听筒和扬声器播放切换
      。[x] 语音实时通话功能
      。[x] 视频实时通话功能
      。[x] 通话过程中的娱乐消息收发
        ~[x] 骰子
        ~[x] 石头剪刀布
        ~[x] 大表情
      。[x] 昵称头像处理(通过回调实现)
App部分功能
· [x] 登录注册(包括业务逻辑和 IM 逻辑)
· [x] 匹配
      。[x] 提交匹配信息
      。[x] 拉取匹配信息
· [x] 聊天(这里直接加载 IM 模块儿)
· [x] 我的
      。[x] 个人信息展示
      。[x] 上传头像
      。[x] 设置昵称
      。[x] 设置签名
· [x] 设置
      。[x] 个人信息设置
      。[x] 通知提醒
      。[x] 聊天
      。[ ] 隐私(随业务部分一起完善)
      。[ ] 通用(随业务部分一起完善)
      。[ ] 帮助反馈(随业务部分一起完善)
      。[x] 关于
      。[x] 退出
· [ ] 社区
      。[ ] 发布
      。[ ] 评论
      。[ ] 收藏
      。[ ] 关注
发布功能
· [x] 多渠道打包
· [x] 签名配置
· [x] 开发与线上环境配置
· [x] 敏感信息保护
 
  #配置运行
1.首先复制config.default.gradle到config.gradle
2.配置下config.gradle环信appkey以及bugly统计Id
3.正式打包需要配置下签名信息,同时将签名文件放置在项目根目录
 
  #参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与
1.Fork本仓库
2.新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
3.提交代码
4.新建Pull Request
5.等待我们的Review & Merge
 
 #关联项目
服务器端由nodejs实现,地址见这里 VMServer
 
  #VMServer
是为Android开源项目VMMatch项目(中文名猿匹配)实现的服务端
 
  #简介
这个项目包含两部分
· 根目录:服务逻辑及API接口实现
· client目录:前端界面,和服务器端代码端放置在同一仓库下(暂未实现)
 
 #使用
简单介绍下运行环境及部署方法
1.安装nodejs开发时使用的是v10.16.0版本
2.需要安装mongodb并启动,开发使用版本4.0.10
3.下载项目到服务器,可以下载压缩包,或者用git clone命令
4.复制config_default.js到config.js,可根据自己需要修改配置文件
5.安装依赖
npm install

6.全局安装pm2
npm install pm2 -g
 
7.运行 vmshell.sh
 
环信冬冬_副本.jpg

扫码备注【开源项目】邀你加入环信开源社群
 
转载自https://blog.melove.net/develop-open-source-im-match-and-server/ 
 
1
评论

想知道在环信iOS新版demo中如何实现会话列表的会话置顶吗?看这里 环信_iOS

开发讨论donghai 发表了文章 • 238 次浏览 • 2020-05-28 16:55 • 来自相关话题

实现思路:
用会话的ext来存会话是否为置顶的状态以及存会话置顶时的时间,然后在刷新会话列表,会话列表排序时,判断会话ext中是否含有置顶状态的字段,然后在将会话列表重新排序。

这里的会话列表排序分两个层级:
1.置顶状态的会话排序,根据会话置顶时的时间排序
2.置顶会话与没有置顶会话的排序
 
先下载链接中的demo,在demo中搜索"会话置顶"即可看到相关代码实现,该demo是基于环信iOS 3.6.6版本demo实现的。

链接:https://pan.baidu.com/s/1jQ6sO4FA-Hnvscc4OcQK4w  密码:fs2w
  查看全部
实现思路:
用会话的ext来存会话是否为置顶的状态以及存会话置顶时的时间,然后在刷新会话列表,会话列表排序时,判断会话ext中是否含有置顶状态的字段,然后在将会话列表重新排序。

这里的会话列表排序分两个层级:
1.置顶状态的会话排序,根据会话置顶时的时间排序
2.置顶会话与没有置顶会话的排序
 
先下载链接中的demo,在demo中搜索"会话置顶"即可看到相关代码实现,该demo是基于环信iOS 3.6.6版本demo实现的。

链接:https://pan.baidu.com/s/1jQ6sO4FA-Hnvscc4OcQK4w  密码:fs2w
 
0
评论

视频超过三十秒后再接受 无数据 环信_iOS

开发讨论╰つ笑ぷ倾城ら 发表了文章 • 992 次浏览 • 2017-06-22 16:57 • 来自相关话题

iOS 根安卓的  视频聊天 超过三十秒之后在接受就没有画面了 都是黑的 小窗口是有画面的是因为 超时了吗 ? 还是什么原因该怎么解决呢  谢谢
iOS 根安卓的  视频聊天 超过三十秒之后在接受就没有画面了 都是黑的 小窗口是有画面的是因为 超时了吗 ? 还是什么原因该怎么解决呢  谢谢
2
评论

iOS 拉取环信消息记录解决方法 环信_iOS iOS历史记录

开发讨论wangcccong 发表了文章 • 3087 次浏览 • 2016-08-26 08:52 • 来自相关话题

1、首先是通过环信接口将数据拉取到我们本地服务器 http://docs.easemob.com/im/100serverintegration/30chatlog
在此过程中,服务器注意需要将拉取下来的数据,保存至数据库中的同时将(img/audio/video)的附件下载,并替换掉数据库中消息的附件地址
2、iOS从自己的服务器拉取数据(主要是解析, 自己服务器保存格式完全按照http://docs.easemob.com/im/100serverintegration/30chatlog)下面贴出解析数据过程(Json-Model使用的是MJExtension)
定义的Model如下





 
处理消息









  查看全部
1、首先是通过环信接口将数据拉取到我们本地服务器 http://docs.easemob.com/im/100serverintegration/30chatlog
在此过程中,服务器注意需要将拉取下来的数据,保存至数据库中的同时将(img/audio/video)的附件下载,并替换掉数据库中消息的附件地址
2、iOS从自己的服务器拉取数据(主要是解析, 自己服务器保存格式完全按照http://docs.easemob.com/im/100serverintegration/30chatlog)下面贴出解析数据过程(Json-Model使用的是MJExtension)
定义的Model如下

0913E702-3480-4B0F-980D-5C7E847C0216.png

 
处理消息
2CA22EAB-167B-4B90-BA29-158A2D397725.png


35E3C8CD-2414-43DA-95E8-E72D2FB3D220.png

 
6
评论

(iOS)名片。或称轨迹信息的做法(消息扩展3X) iOS名片 环信_iOS iOS环信UI集成 名片 iOS环信扩展

开发讨论su酥酥 发表了文章 • 4750 次浏览 • 2016-07-27 18:22 • 来自相关话题

环信iOS版的名片怎么做尼?当你真正了解了。。你就会发现其实不是很难得东西。。。我先要感谢一个人他叫无双,。。谢谢你。。我也在这里发了很多问题。。现在是时候回报了。。希望可以帮助更多的人。。谢谢。。



如上图。。这是代表扩展信息的办法。。原理更头像的是一样的。。用的是消息携带的办法。。。我在这里就是把我的一些信息用消息携带的办法发送过去。要记住发送的对象名称和安卓的要一样哈。。收到就到了展示的时候了。。展示肯定要判断的。。这是肯定的。。- (UITableViewCell *)messageViewController:(UITableView *)tableView在这个方法里面写判断。。原因为什么这个不用我说吧。。。














这就是判断的代码。见人见智哇。。还有就是cell也就是你的名片的高度是多少。。也要有判断




大概的原理就是这样的了。。。此图仅供参考。。。我已经有一些备注的了。。。大概看起来不是什么问题的了。。希望对你们有帮助。 查看全部
环信iOS版的名片怎么做尼?当你真正了解了。。你就会发现其实不是很难得东西。。。我先要感谢一个人他叫无双,。。谢谢你。。我也在这里发了很多问题。。现在是时候回报了。。希望可以帮助更多的人。。谢谢。。
30883222-5266-42B6-BCE0-56D13183041A.jpg
如上图。。这是代表扩展信息的办法。。原理更头像的是一样的。。用的是消息携带的办法。。。我在这里就是把我的一些信息用消息携带的办法发送过去。要记住发送的对象名称和安卓的要一样哈。。收到就到了展示的时候了。。展示肯定要判断的。。这是肯定的。。- (UITableViewCell *)messageViewController:(UITableView *)tableView在这个方法里面写判断。。原因为什么这个不用我说吧。。。
6B8E00AE-10C4-44D0-9F83-7478E5F38CCC.png


40419A8D-91EE-4F57-9545-21EFBDD067CB.png


4B73C851-0353-4E48-B0B8-EAE456FF5F03.png

这就是判断的代码。见人见智哇。。还有就是cell也就是你的名片的高度是多少。。也要有判断
20064AF4-6FCE-4D08-B754-8C7827F5F7C7.png

大概的原理就是这样的了。。。此图仅供参考。。。我已经有一些备注的了。。。大概看起来不是什么问题的了。。希望对你们有帮助。
1
评论

ios端部分回调接口不执行排查思路 环信_iOS

开发讨论mazhihua 发表了文章 • 3815 次浏览 • 2016-02-22 15:47 • 来自相关话题

1 发送消息:
1.1 /*!
 @method
 @brief 发送一条消息
 @discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改
 @param message  消息对象(包括from, to, body列表等信息)
 @param progress 发送多媒体信息时的progress回调对象
 @param pError   错误信息
 @result 发送完成后的消息对象
 */
- (EMMessage *)sendMessage:(EMMessage *)message
                 progress:(id<IEMChatProgressDelegate>)progress
                    error:(EMError **)pError;
解释: 这个方法是同步方法,是不会执行回调的

1.2 /*!
 @method
 @brief 异步方法, 发送一条消息
 @discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改. 在发送过程中, willSendMessage:error:和didSendMessage:error:这两个回调会被触发
 @param message  消息对象(包括from, to, body列表等信息)
 @param progress 发送多媒体信息时的progress回调对象
 @result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
 */
- (EMMessage *)asyncSendMessage:(EMMessage *)message
                      progress:(id<IEMChatProgressDelegate>)progress;
解释: 这个方法是异步发送消息的方法,调用这个方法willSendMessage:error:和didSendMessage:error:这两个回调会被触发。
如果没有触发,排查思路:a 看一下有没有遵守IChatManagerDelegate这个协议;b 看一下viewDidLoad里面有没有注册代理,方法是[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
1.3 /*!
 @method
 @brief 异步方法, 发送一条消息
 @discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改
 @param message  消息对象(包括from, to, body列表等信息)
 @param progress 发送多媒体信息时的progress回调对象
 @param prepare          将要发送消息前的回调block
 @param aPrepareQueue    回调block时的线程
 @param completion       发送消息完成后的回调
 @param aCompletionQueue 回调block时的线程
 @result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
 */
- (EMMessage *)asyncSendMessage:(EMMessage *)message
                           progress:(id<IEMChatProgressDelegate>)progress
                            prepare:(void (^)(EMMessage *message,
                                              EMError *error))prepare
                            onQueue:(dispatch_queue_t)aPrepareQueue
                         completion:(void (^)(EMMessage *message,
                                              EMError *error))completion
                            onQueue:(dispatch_queue_t)aCompletionQueue;
解释: 这个方法是异步block回调的方法,也不会执行回调的

2接收消息
2.1 接收在线消息

/*!
 @method
 @brief 收到消息时的回调
 @param message      消息对象
 @discussion 当EMConversation对象的enableReceiveMessage属性为YES时, 会触发此回调
             针对有附件的消息, 此时附件还未被下载.
             附件下载过程中的进度回调请参考didFetchingMessageAttachments:progress:, 
             下载完所有附件后, 回调didMessageAttachmentsStatusChanged:error:会被触发
 */
- (void)didReceiveMessage:(EMMessage *)message;
解释:这个方法是接收在线消息的方法,如果这个回调不执行,排查:
a 先判断消息是不是发送成功,接收方可以使用环信的Demo(AppKey换成您自己的)测试,如果能够接受到消息,说明消息发送成功了;
b看一下有没有遵守IChatManagerDelegate这个协议;
c看一下viewDidLoad里面有没有注册代理,方法是[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
d 程序所处的界面不是didReceiveMessage方法所在的界面,可以在根控制器中调用didReceiveMessage

2.2 接受离线消息
/*!
 @method
 @brief 接收到离线非透传消息的回调
 @discussion
 @param offlineMessages 接收到的离线列表
 @result
 */
- (void)didReceiveOfflineMessages:(NSArray *)offlineMessages;
解释:这个方法是接收离线消息的方法,如果这个回调不执行,排查:
a 先判断消息是不是发送成功,接收方可以使用环信的Demo(AppKey换成您自己的)测试,如果能够接受到消息,说明消息发送成功了;
b看一下有没有遵守IChatManagerDelegate这个协议;
c看一下viewDidLoad里面有没有注册代理,方法是[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
d 程序所处的界面不是didReceiveOfflineMessage方法所在的界面,可以在根控制器中调用didReceiveOfflineMessage 查看全部
1 发送消息:
1.1 /*!
 @method
 @brief 发送一条消息
 @discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改
 @param message  消息对象(包括from, to, body列表等信息)
 @param progress 发送多媒体信息时的progress回调对象
 @param pError   错误信息
 @result 发送完成后的消息对象
 */
- (EMMessage *)sendMessage:(EMMessage *)message
                 progress:(id<IEMChatProgressDelegate>)progress
                    error:(EMError **)pError;
解释: 这个方法是同步方法,是不会执行回调的

1.2 /*!
 @method
 @brief 异步方法, 发送一条消息
 @discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改. 在发送过程中, willSendMessage:error:和didSendMessage:error:这两个回调会被触发
 @param message  消息对象(包括from, to, body列表等信息)
 @param progress 发送多媒体信息时的progress回调对象
 @result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
 */
- (EMMessage *)asyncSendMessage:(EMMessage *)message
                      progress:(id<IEMChatProgressDelegate>)progress;
解释: 这个方法是异步发送消息的方法,调用这个方法willSendMessage:error:和didSendMessage:error:这两个回调会被触发。
如果没有触发,排查思路:a 看一下有没有遵守IChatManagerDelegate这个协议;b 看一下viewDidLoad里面有没有注册代理,方法是[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
1.3 /*!
 @method
 @brief 异步方法, 发送一条消息
 @discussion 待发送的消息对象和发送后的消息对象是同一个对象, 在发送过程中对象属性可能会被更改
 @param message  消息对象(包括from, to, body列表等信息)
 @param progress 发送多媒体信息时的progress回调对象
 @param prepare          将要发送消息前的回调block
 @param aPrepareQueue    回调block时的线程
 @param completion       发送消息完成后的回调
 @param aCompletionQueue 回调block时的线程
 @result 发送的消息对象(因为是异步方法, 不能作为发送完成或发送成功失败与否的判断)
 */
- (EMMessage *)asyncSendMessage:(EMMessage *)message
                           progress:(id<IEMChatProgressDelegate>)progress
                            prepare:(void (^)(EMMessage *message,
                                              EMError *error))prepare
                            onQueue:(dispatch_queue_t)aPrepareQueue
                         completion:(void (^)(EMMessage *message,
                                              EMError *error))completion
                            onQueue:(dispatch_queue_t)aCompletionQueue;
解释: 这个方法是异步block回调的方法,也不会执行回调的

2接收消息
2.1 接收在线消息

/*!
 @method
 @brief 收到消息时的回调
 @param message      消息对象
 @discussion 当EMConversation对象的enableReceiveMessage属性为YES时, 会触发此回调
             针对有附件的消息, 此时附件还未被下载.
             附件下载过程中的进度回调请参考didFetchingMessageAttachments:progress:, 
             下载完所有附件后, 回调didMessageAttachmentsStatusChanged:error:会被触发
 */
- (void)didReceiveMessage:(EMMessage *)message;
解释:这个方法是接收在线消息的方法,如果这个回调不执行,排查:
a 先判断消息是不是发送成功,接收方可以使用环信的Demo(AppKey换成您自己的)测试,如果能够接受到消息,说明消息发送成功了;
b看一下有没有遵守IChatManagerDelegate这个协议;
c看一下viewDidLoad里面有没有注册代理,方法是[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
d 程序所处的界面不是didReceiveMessage方法所在的界面,可以在根控制器中调用didReceiveMessage

2.2 接受离线消息
/*!
 @method
 @brief 接收到离线非透传消息的回调
 @discussion
 @param offlineMessages 接收到的离线列表
 @result
 */
- (void)didReceiveOfflineMessages:(NSArray *)offlineMessages;
解释:这个方法是接收离线消息的方法,如果这个回调不执行,排查:
a 先判断消息是不是发送成功,接收方可以使用环信的Demo(AppKey换成您自己的)测试,如果能够接受到消息,说明消息发送成功了;
b看一下有没有遵守IChatManagerDelegate这个协议;
c看一下viewDidLoad里面有没有注册代理,方法是[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
d 程序所处的界面不是didReceiveOfflineMessage方法所在的界面,可以在根控制器中调用didReceiveOfflineMessage
3
评论

基于EaseUI实现的图文混排 环信_iOS

开发讨论环信沈冲 发表了文章 • 2530 次浏览 • 2016-02-03 18:36 • 来自相关话题

http://yun.baidu.com/s/1W4F1c
链接是实现的demo,主要是在MessageCellBubbleView中添加了EaseBubbleView+Custom.m,并在来图文混排消息的时候使用该bubbleview去展示。 查看全部
http://yun.baidu.com/s/1W4F1c
链接是实现的demo,主要是在MessageCellBubbleView中添加了EaseBubbleView+Custom.m,并在来图文混排消息的时候使用该bubbleview去展示。
0
评论

如何给实时语音实时视频通话加上播放铃声提醒 环信_iOS

开发讨论环信沈冲 发表了文章 • 4025 次浏览 • 2016-01-27 12:08 • 来自相关话题

进CallViewController.m,在viewDidLoad中的相应位置调用_beginRing方法即可。具体代码如下:
if (_isIncoming) {
        _statusLabel.text = NSLocalizedString(@"call.waiting", @"Waiting to answer...");
        [_actionView addSubview:_answerButton];
        [_actionView addSubview:_rejectButton];
        // PS.开始播放铃声
        [self _beginRing];
    } 查看全部
进CallViewController.m,在viewDidLoad中的相应位置调用_beginRing方法即可。具体代码如下:
if (_isIncoming) {
        _statusLabel.text = NSLocalizedString(@"call.waiting", @"Waiting to answer...");
        [_actionView addSubview:_answerButton];
        [_actionView addSubview:_rejectButton];
        // PS.开始播放铃声
        [self _beginRing];
    }
3
评论

使用环信demo实现类似QQ那样的会话界面效果 环信_iOS

开发讨论iOSwork 发表了文章 • 20446 次浏览 • 2016-01-25 17:24 • 来自相关话题

使用环信即时聊天,将昵称和聊天信息显示样式更改成类似QQ的效果。
如图:




也就是图片的上半部分显示昵称,昵称下面紧跟着聊天信息的效果。如果你还不了解这种效果的话,那么你打开你的手机QQ进入一个群看下就明白了。
注意:我使用的是环信2.0,不是3.0
 
1、更改昵称的位置
全局搜索找到EMChatViewBaseCell.h文件,在该文件中的layoutSubviews方法里面进行更改。




2、在layoutSubviews更改完成之后,还是在该文件中,然后在setMessageModel方法里面进行一个更改。代码如下图显示。




3、这样昵称就显示出来了。如果是别人的信息(左侧),昵称在图片的右侧;自己发送的信息,昵称在图片的左侧。到目前位置,显示昵称及位置已经好了,但是问题出现了,聊天信息会遮住了昵称,那么就要往下看了。
4、找到EMChatViewCell.h文件,EMChatViewCell是继承于EMChatViewBaseCell的一个子类,这里主要是显示聊天信息的一个view。在这个文件里面进行聊天信息位置的设定即可。代码如下:
找到EMChatViewCell文件中的layoutSubviews方法,在这个里面进行设置即可。
将bubbleFrame.origin.y = self.headImageView.frame.origin.y;
改成
bubbleFrame.origin.y = self.headImageView.frame.origin.y + 15;即可
这layoutSubviews方法里面有俩个地方要改。如下图显示





 
 如果上面更改成功了,那么就完成了,可以看看效果了。如图





 
 
  查看全部
使用环信即时聊天,将昵称和聊天信息显示样式更改成类似QQ的效果。
如图:
更改后的.png

也就是图片的上半部分显示昵称,昵称下面紧跟着聊天信息的效果。如果你还不了解这种效果的话,那么你打开你的手机QQ进入一个群看下就明白了。

注意:我使用的是环信2.0,不是3.0
 
1、更改昵称的位置
全局搜索找到EMChatViewBaseCell.h文件,在该文件中的layoutSubviews方法里面进行更改。

layoutSubviews.png

2、在layoutSubviews更改完成之后,还是在该文件中,然后在setMessageModel方法里面进行一个更改。代码如下图显示。
setmodel.png

3、这样昵称就显示出来了。如果是别人的信息(左侧),昵称在图片的右侧;自己发送的信息,昵称在图片的左侧。到目前位置,显示昵称及位置已经好了,但是问题出现了,聊天信息会遮住了昵称,那么就要往下看了。
4、找到EMChatViewCell.h文件,EMChatViewCell是继承于EMChatViewBaseCell的一个子类,这里主要是显示聊天信息的一个view。在这个文件里面进行聊天信息位置的设定即可。代码如下:
找到EMChatViewCell文件中的layoutSubviews方法,在这个里面进行设置即可。
将bubbleFrame.origin.y = self.headImageView.frame.origin.y;
改成
bubbleFrame.origin.y = self.headImageView.frame.origin.y + 15;即可
这layoutSubviews方法里面有俩个地方要改。如下图显示

viewset.png

 


 如果上面更改成功了,那么就完成了,可以看看效果了。如图

更改后的.png

 
 
 
4
评论

环信扩展消息的UI问题 扩展 环信_iOS

开发讨论sj3023356 发表了文章 • 2901 次浏览 • 2016-01-13 10:09 • 来自相关话题

我在自定义一个扩展消息的时候,UI格式参照环信File的类型写的,可是UI却显示不出来,麻烦谁能帮我解决下。代码和截图如下
 
 
我在自定义一个扩展消息的时候,UI格式参照环信File的类型写的,可是UI却显示不出来,麻烦谁能帮我解决下。代码和截图如下
 
 
4
评论

关于视频聊天的问题 环信_iOS iOS

开发讨论shutup 发表了文章 • 4965 次浏览 • 2015-12-21 16:21 • 来自相关话题

我在集成了EaseUI3.0后,发现对于视频聊天的请求,如果用户选择了不给权限,那么虽然应用会提示我们去隐私-》相机然后后找到相应的应用打开权限,但我测试发现在列表中并没有列出来我们的app。经过查找,感觉问题在CallViewController.m的canVideo方法。这里对能否访问摄像头进行了判断,但没有尝试去获取权限。因此我将代码修改为如下内容。完美解决这个问题。
+ (BOOL)canVideo
{
if([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending){
// if(!([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] == AVAuthorizationStatusAuthorized)){\
// UIAlertView * alt = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"setting.cameraNoAuthority", @"No camera permissions") message:NSLocalizedString(@"setting.cameraAuthority", @"Please open in \"Setting\"-\"Privacy\"-\"Camera\".") delegate:self cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"ok", @"OK"), nil];
// [alt show];
// return NO;
// }
NSString *mediaType = AVMediaTypeVideo;// Or AVMediaTypeAudio
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
NSLog(@"---cui--authStatus--------%d",authStatus);
// This status is normally not visible—the AVCaptureDevice class methods for discovering devices do not return devices the user is restricted from accessing.
if(authStatus ==AVAuthorizationStatusRestricted){
NSLog(@"Restricted");
}else if(authStatus == AVAuthorizationStatusDenied){
// The user has explicitly denied permission for media capture.
NSLog(@"Denied"); //应该是这个,如果不允许的话
UIAlertView * alt = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"setting.cameraNoAuthority", @"No camera permissions") message:NSLocalizedString(@"setting.cameraAuthority", @"Please open in \"Setting\"-\"Privacy\"-\"Camera\".") delegate:self cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"ok", @"OK"), nil];
[alt show];
return NO;
}
else if(authStatus == AVAuthorizationStatusAuthorized){//允许访问
// The user has explicitly granted permission for media capture, or explicit user permission is not necessary for the media type in question.
NSLog(@"Authorized");

}else if(authStatus == AVAuthorizationStatusNotDetermined){
// Explicit user permission is required for media capture, but the user has not yet granted or denied such permission.
[AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {
if(granted){//点击允许访问时调用
//用户明确许可与否,媒体需要捕获,但用户尚未授予或拒绝许可。
NSLog(@"Granted access to %@", mediaType);
}
else {
NSLog(@"Not granted access to %@", mediaType);
}

}];
}else {
NSLog(@"Unknown authorization status");
}
}

return YES;
} 查看全部
我在集成了EaseUI3.0后,发现对于视频聊天的请求,如果用户选择了不给权限,那么虽然应用会提示我们去隐私-》相机然后后找到相应的应用打开权限,但我测试发现在列表中并没有列出来我们的app。经过查找,感觉问题在CallViewController.m的canVideo方法。这里对能否访问摄像头进行了判断,但没有尝试去获取权限。因此我将代码修改为如下内容。完美解决这个问题。
+ (BOOL)canVideo
{
if([[[UIDevice currentDevice] systemVersion] compare:@"7.0"] != NSOrderedAscending){
// if(!([AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo] == AVAuthorizationStatusAuthorized)){\
// UIAlertView * alt = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"setting.cameraNoAuthority", @"No camera permissions") message:NSLocalizedString(@"setting.cameraAuthority", @"Please open in \"Setting\"-\"Privacy\"-\"Camera\".") delegate:self cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"ok", @"OK"), nil];
// [alt show];
// return NO;
// }
NSString *mediaType = AVMediaTypeVideo;// Or AVMediaTypeAudio
AVAuthorizationStatus authStatus = [AVCaptureDevice authorizationStatusForMediaType:mediaType];
NSLog(@"---cui--authStatus--------%d",authStatus);
// This status is normally not visible—the AVCaptureDevice class methods for discovering devices do not return devices the user is restricted from accessing.
if(authStatus ==AVAuthorizationStatusRestricted){
NSLog(@"Restricted");
}else if(authStatus == AVAuthorizationStatusDenied){
// The user has explicitly denied permission for media capture.
NSLog(@"Denied"); //应该是这个,如果不允许的话
UIAlertView * alt = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"setting.cameraNoAuthority", @"No camera permissions") message:NSLocalizedString(@"setting.cameraAuthority", @"Please open in \"Setting\"-\"Privacy\"-\"Camera\".") delegate:self cancelButtonTitle:nil otherButtonTitles:NSLocalizedString(@"ok", @"OK"), nil];
[alt show];
return NO;
}
else if(authStatus == AVAuthorizationStatusAuthorized){//允许访问
// The user has explicitly granted permission for media capture, or explicit user permission is not necessary for the media type in question.
NSLog(@"Authorized");

}else if(authStatus == AVAuthorizationStatusNotDetermined){
// Explicit user permission is required for media capture, but the user has not yet granted or denied such permission.
[AVCaptureDevice requestAccessForMediaType:mediaType completionHandler:^(BOOL granted) {
if(granted){//点击允许访问时调用
//用户明确许可与否,媒体需要捕获,但用户尚未授予或拒绝许可。
NSLog(@"Granted access to %@", mediaType);
}
else {
NSLog(@"Not granted access to %@", mediaType);
}

}];
}else {
NSLog(@"Unknown authorization status");
}
}

return YES;
}
0
评论

ios推送字符长度有没有限制? 环信_iOS

开发讨论环信专业服务 发表了文章 • 3143 次浏览 • 2015-09-24 23:16 • 来自相关话题

跟普通消息一样,30kb以内。另外,自定义的字段可以全部显示。
跟普通消息一样,30kb以内。另外,自定义的字段可以全部显示。
0
评论

用户发过来的语音消息,这边听过后,黄点(未读标识)不消失, 是怎么回事? 自定义扩展消息 接收消息 环信_iOS

开发讨论环信专业服务 发表了文章 • 3478 次浏览 • 2015-09-19 11:09 • 来自相关话题

全局搜一下prepareMessageAudioModel这个函数 还有modelWithMessage,把 [[EaseMob sharedInstance].chatManager insertMessageToDB:chatMessage];
换成[chatMessage updateMessageExtToDB]; 查看全部
全局搜一下prepareMessageAudioModel这个函数 还有modelWithMessage,把 [[EaseMob sharedInstance].chatManager insertMessageToDB:chatMessage];
换成[chatMessage updateMessageExtToDB];
0
评论

如果没有注册过的账号去调用环信的登录接口,是不是也能连接聊天服务器? 环信_iOS

开发讨论环信专业服务 发表了文章 • 2564 次浏览 • 2015-09-15 03:32 • 来自相关话题

不是,没有注册的用户不可以聊天。
不是,没有注册的用户不可以聊天。
0
评论

IOS删除所有聊天记录的方法是哪个? 聊天记录 iOS 删除 环信_iOS

开发讨论环信专业服务 发表了文章 • 3254 次浏览 • 2015-09-14 18:43 • 来自相关话题

/*!
 @method
 @brief 删除所有会话对象
 @discussion
 @param aDeleteMessages 是否删除这个会话对象所关联的聊天记录
 @param append2Chat     是否加到内存中。
        YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI;
        NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。
 @result 是否成功执行
 */
- (BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages
                                     append2Chat:(BOOL)append2Chat。 查看全部
/*!
 @method
 @brief 删除所有会话对象
 @discussion
 @param aDeleteMessages 是否删除这个会话对象所关联的聊天记录
 @param append2Chat     是否加到内存中。
        YES为加到内存中。加到内存中之后, 会有相应的回调被触发从而更新UI;
        NO为不加到内存中。如果不加到内存中, 则只会直接添加进DB, 不会有SDK的回调函数被触发从而去更新UI。
 @result 是否成功执行
 */
- (BOOL)removeAllConversationsWithDeleteMessages:(BOOL)aDeleteMessages
                                     append2Chat:(BOOL)append2Chat。
0
评论

ios 可以重复建群吗?同样的三个人可以建多个群吗? iOS 环信_iOS

开发讨论环信专业服务 发表了文章 • 2400 次浏览 • 2015-09-14 04:03 • 来自相关话题

可以重复建群。
可以重复建群。
0
评论

项目中是否可以用其他推送,和环信推送是否有冲突? 推送 消息推送 环信_iOS

开发讨论环信专业服务 发表了文章 • 3434 次浏览 • 2015-09-09 00:55 • 来自相关话题

没有冲突。
没有冲突。
1
评论

环信消息推送,是本地推送,还是远程推送? 推送 自定义扩展消息 消息推送 本地推送 环信_iOS

开发讨论环信专业服务 发表了文章 • 5746 次浏览 • 2015-09-08 19:21 • 来自相关话题

ios长连接没断开是本地通知,断开了走apns。
ios长连接没断开是本地通知,断开了走apns。
1
评论

APP彻底关闭,无法收到推送? 推送 消息推送 收不到推送 本地推送 环信_iOS

开发讨论环信专业服务 发表了文章 • 5541 次浏览 • 2015-09-07 10:33 • 来自相关话题

用户可以通过以下几步检验自己的推送
1.首先需要用户上传APNS推送证书到环信管理后台。
2.在环信iOSSDK初始化时填写用户自己的证书名称。
3.注册推送。
4.真机登录环信im账号。
5.查看管理后台中,对应im账户下是否有用户刚刚写的证书名。(如果没有,请检查是否得到了deviceToken)
6.确定用户当前证书是否和自己的项目匹配。(开发证书与生产证书需要一一对应) 查看全部
用户可以通过以下几步检验自己的推送
1.首先需要用户上传APNS推送证书到环信管理后台。
2.在环信iOSSDK初始化时填写用户自己的证书名称。
3.注册推送。
4.真机登录环信im账号。
5.查看管理后台中,对应im账户下是否有用户刚刚写的证书名。(如果没有,请检查是否得到了deviceToken)
6.确定用户当前证书是否和自己的项目匹配。(开发证书与生产证书需要一一对应)
7
评论

APP后台时无法收到推送,怎么办? 推送 消息推送 本地推送 环信_iOS

开发讨论环信专业服务 发表了文章 • 6008 次浏览 • 2015-09-07 06:46 • 来自相关话题

环信将notification分为两种,一种是本地通知,一种是apns。当您后台时,长连接还存在,会走didReceiveMessage方法,需要您自己维护本地通知(即LocalNotification)。
环信将notification分为两种,一种是本地通知,一种是apns。当您后台时,长连接还存在,会走didReceiveMessage方法,需要您自己维护本地通知(即LocalNotification)。
0
评论

SDK是否支持64位? 环信_iOS

开发讨论环信专业服务 发表了文章 • 2380 次浏览 • 2015-09-07 00:21 • 来自相关话题

支持。
支持。
0
评论

问下ios 自动重连不需要代码设置吗?只需要简单地监控一下吗? iOS 重连 环信_iOS

开发讨论环信专业服务 发表了文章 • 2726 次浏览 • 2015-08-30 19:04 • 来自相关话题

自动重连不需要设置。
自动重连不需要设置。
0
评论

[NSConcreteData AES256Decrypt]: unrecognized selector sent to instance XXX,怎么办? 环信_iOS

开发讨论环信专业服务 发表了文章 • 2721 次浏览 • 2015-08-27 21:39 • 来自相关话题

other link flags 设置-ObjC 注意大小写。
other link flags 设置-ObjC 注意大小写。
0
评论

无法收到好友请求,怎么办? 好友申请 环信_iOS

开发讨论环信专业服务 发表了文章 • 3395 次浏览 • 2015-08-26 18:53 • 来自相关话题

请确定接受好友请求的类是否初始化,并声明了IChatManagerDelegate,实现了注册回调和回调方法。
请确定接受好友请求的类是否初始化,并声明了IChatManagerDelegate,实现了注册回调和回调方法。
1
评论

cmd消息,跟聊天的消息,不存在冲突么? 环信_iOS

开发讨论环信专业服务 发表了文章 • 3039 次浏览 • 2015-08-25 15:34 • 来自相关话题

普通消息回调的方法跟这个不一样,所以不冲突,普通聊天得接收方法didReceiveMessage,cmd消息的接收方法didReceiveCmdMessage。
普通消息回调的方法跟这个不一样,所以不冲突,普通聊天得接收方法didReceiveMessage,cmd消息的接收方法didReceiveCmdMessage。