1、申请环信账号   环信通讯云

2、此文章只讲 聊天室内容

3、创建连接

let conn = {};
WebIM.config = config;
conn = WebIM.conn = new WebIM.connection({appKey: WebIM.config.appkey,isHttpDNS: WebIM.config.isHttpDNS,isMultiLoginSessions: WebIM.config.isMultiLoginSessions,https: WebIM.config.https,url: WebIM.config.socketServer,apiUrl: WebIM.config.restServer,isAutoLogin: WebIM.config.isAutoLogin,autoReconnectNumMax: WebIM.config.autoReconnectNumMax,autoReconnectInterval: WebIM.config.autoReconnectInterval,delivery: WebIM.config.delivery,useOwnUploadFun: WebIM.config.useOwnUploadFun
})
// WebIM.config 为之前集成里介绍的WebIMConfig.js

4、添加回调函数(此数据非常重要,之后的聊天交互全在这里)

conn.listen({onOpened: function () {},                  //连接成功回调 onClosed: function () {},                  //连接关闭回调onTextMessage: function ( message ) {},    //收到文本消息onEmojiMessage: function ( message ) {},   //收到表情消息onPictureMessage: function ( message ) {}, //收到图片消息onCmdMessage: function ( message ) {},     //收到命令消息onAudioMessage: function ( message ) {},   //收到音频消息onLocationMessage: function ( message ) {},//收到位置消息onFileMessage: function ( message ) {},    //收到文件消息onCustomMessage: function ( message ) {},  //收到自定义消息onVideoMessage: function (message) {var node = document.getElementById('privateVideo');var option = {url: message.url,headers: {'Accept': 'audio/mp4'},onFileDownloadComplete: function (response) {var objectURL = WebIM.utils.parseDownloadResponse.call(conn, response);node.src = objectURL;},onFileDownloadError: function () {console.log('File down load error.')}};WebIM.utils.download.call(conn, option);},   //收到视频消息onPresence: function ( message ) {},       //处理“广播”或“发布-订阅”消息,如联系人订阅请求、处理群组、聊天室被踢解散等消息onRoster: function ( message ) {},         //处理好友申请onInviteMessage: function ( message ) {},  //处理群组邀请onOnline: function () {},                  //本机网络连接成功onOffline: function () {},                 //本机网络掉线onError: function ( message ) {},          //失败回调onBlacklistUpdate: function (list) {       //黑名单变动// 查询黑名单,将好友拉黑,将好友从黑名单移除都会回调这个函数,list则是黑名单现有的所有好友信息console.log(list);},onRecallMessage: function(message){},      //收到撤回消息回调onReceivedMessage: function(message){},    //收到消息送达服务器回执onDeliveredMessage: function(message){},   //收到消息送达客户端回执onReadMessage: function(message){},        //收到消息已读回执onCreateGroup: function(message){},        //创建群组成功回执(需调用createGroupNew)onMutedMessage: function(message){},       //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员onChannelMessage: function(message){}      //收到整个会话已读的回执,在对方发送channel ack时会在这个回调里收到消息
});

5、注册 (此步骤可以通过后台注册,在前端注册初始化可能需要时间)

var options = { username: 'username',password: 'password',nickname: 'nickname',appKey: WebIM.config.appkey,success: function () { },  error: function (err) {let errorData = JSON.parse(err.data);if (errorData.error === 'duplicate_unique_property_exists') {console.log('用户已存在!');} else if (errorData.error === 'illegal_argument') {if (errorData.error_description === 'USERNAME_TOO_LONG') {console.log('用户名超过64个字节!')}else{console.log('用户名不合法!')}} else if (errorData.error === 'unauthorized') {console.log('注册失败,无权限!')} else if (errorData.error === 'resource_limited') {console.log('您的App用户注册数量已达上限,请升级至企业版!')}}, }; conn.registerUser(options);

6、登录

var options = { user: 'username',pwd: 'password',appKey: WebIM.config.appkey
};
conn.open(options);

7、进入聊天室(创建聊天室需要有管理员权限,这一步可以通过在后台进行管理)

/*创建聊天室(创建聊天室需要有管理员权限,这一步可以通过在后台进行管理)*/
let options = {name: 'chatRoomName', // 聊天室名称description: 'description', // 聊天室描述maxusers: 200, // 聊天室成员最大数(包括聊天室创建者),默认值200,聊天室人数最大默认5000。members: ['user1', 'user2'] // 聊天室成员,此属性为可选的,但是如果加了此项,数组元素至少一个
}
conn.createChatRoom(options).then((res) => {console.log(res)
})//加入聊天室
let options = {roomId: 'roomId',   // 聊天室idmessage: 'reason'   // 原因(可选参数)
}
conn.joinChatRoom(options).then((res) => {console.log(res)
})

8、发送消息(接收内容查看第四步)

let options = {roomId: 'roomId',                 // 聊天室id   announcement: 'hello everyone'    // 公告内容
};
conn.updateChatRoomAnnouncement(options).then((res) => {console.log(res)
})

9、聊天室事件监听

conn.listen({onPresence: function(msg){switch(msg.type){case 'rmChatRoomMute':// 解除聊天室一键禁言break;case 'muteChatRoom':// 聊天室一键禁言break;case 'rmUserFromChatRoomWhiteList':// 删除聊天室白名单成员break;case 'addUserToChatRoomWhiteList':// 增加聊天室白名单成员break;case 'deleteFile':// 删除聊天室文件break;case 'uploadFile':// 上传聊天室文件break;case 'deleteAnnouncement':// 删除聊天室公告break;case 'updateAnnouncement':// 更新聊天室公告break;case 'removeMute':// 解除禁言break;case 'addMute':// 禁言break;case 'removeAdmin':// 移除管理员break;case 'addAdmin':// 添加管理员break;case 'changeOwner':// 转让聊天室break;case 'leaveChatRoom':// 退出聊天室break;case 'memberJoinChatRoomSuccess':// 加入聊天室break;case 'leave':// 退出群break;case 'join':// 加入群break;default:break;}}
})

10、总结

以上步骤可以满足大部分需求如果需要其他聊天室的内容可以去看官网文档 聊天室 开发文档

也可以参考这个  环信git

注释:建议用web做即时通讯的,在开始的时候先封装一下 要不然之后做的时候可能越做越乱,刚开始我就踩过这个坑

环信即时通讯 聊天室、发红包相关推荐

  1. vue2集成声网-环信即时通讯SDK,建议实现两人聊天

    1.注册登陆环信并创建用户 步骤:注册 => 登录 => 创建应用 => 创建应用用户 登录注册:环信登陆注册页面(https://console.easemob.com/user/ ...

  2. 环信即时通讯IM重大更新助力企业数字化转型

    即时通讯IM是人与人沟通的基础服务,随着线上场景的进一步丰富,用户对于IM的能力要求日益提升.IM本质是一项服务,用户对于体验质量的要求异常严苛,掌握终端用户质量体验的变化和趋势,能够快速发现问题及根 ...

  3. 环信即时通讯SDK集成——实战:快速实现iOS应用中集成即时通讯IM和UI

    准备 熟练objective-c语言 有一台mac电脑,并安装了xcode 和 cocoapods 目标 手把手教大家在iOS应用中集成即时通讯IM 功能 内容篇幅较长,需要内心平和耐心看下去,务必戒 ...

  4. Android 环信即时通讯集成

    1.  首先需要注册环信即时通讯    主要是获取到appkey 2. 下载Android  的 sdk  和 demo 3. 第三步 我先忙需要导入  easeui 声明一点 libs.lite  ...

  5. 【APICloud系列|25】 easeChat模块(环信-即时通讯)的实现

    导读:easeChat 模块封装了环信即时通讯云的开放SDK,封装的接口都是纯功能类接口, 主要分三大类: 1,注册.登录.退出.监听 2,创建群组.添加/删除好友.获取好友列表 3,消息.会话.聊天 ...

  6. 环信即时通讯云iOS版V2.0.9.1服务评测

    集成测试 评测环境 2G/3G/WiFi网络下: 测评环境 MAC OS(10.9.2)+ XCode(5.1) + iPhone 测试对象 环信即时通讯云 IOS SDK Version 2.0.9 ...

  7. 环信即时通讯技术实践

    ** 环信即时聊天的页面实现 ** 最近研究了一下环信即时通讯技术,大致实现了页面的风格,好友之间的聊天,具体页面也贴出来,希望感兴趣的朋友批评指正

  8. 环信即时通讯SDK集成——如何使用Swift快速集成环信IM iOS SDK并实现单聊

    本文介绍如何使用swift快速集成环信即时通讯 IM iOS SDK 实现单聊. 前提条件 • Xcode (推荐最新版本). • 安装 iOS 10.0 或更高版本的 iOS 模拟器或 Apple ...

  9. 环信即时通讯——集成客户端

    最近公司在开发一款 APP,需要使用环信即时通讯来做及时聊天和直播,找了好多官方的 REST API 发现并没有把直播集成服务写完,于是自己完善了一下,与大家分享 O (∩_∩) O 话不多说上代码 ...

最新文章

  1. 协方差代表的意义是什么?
  2. 过程声明与同名事件或过程的描述不匹配_多特征结合的倾斜无人机影像匹配方法...
  3. 自定义dialog弹窗html,自定义H5页面dialog弹窗
  4. PHP:Iterator(迭代器)接口和生成器
  5. ZAB(Zookeeper Atomic Broadcast)协议详解
  6. 中职学校计算机教学背景,创新网络背景下中职院校计算机教学模式探析
  7. c语言程序可以单独编译,c语言的函数能单独进行编译吗?
  8. java war 打包、解压命令
  9. 吉他录音混音教程入门|连这些录音知识都不懂,以后还怎么“混”?| MZD Studios
  10. 编程语言难度排名_谷歌排名第一的编程语言,小学生拿来做答题,分分钟钟搞定高难度算法!...
  11. LVS负载均衡——NAT模式
  12. 二、极大联通子图、极小联通子图
  13. error C2712: Cannot use __try in functions that require object unwinding编译错误处理
  14. ACW 835. Trie字符串统计
  15. oracle ora 00910,ORA-00910: 指定的长度对于数据类型而言过长
  16. cisco asa(asa5510 设置)防火墙的配置详解
  17. GitHub已标星72K阿里内部878页性能优化笔记限时免费
  18. kubernetes指令合集
  19. minicom使用教程
  20. 使用Aosp源码编译安卓ROM(小米,一加,三星,中兴等)

热门文章

  1. 劳德巴赫_众包巴赫杰作的新版本
  2. 来让人工智能帮你写注释吧,支持 Python
  3. 键盘记录支持中文,3389(czy 原创)
  4. 安防监控工程中光纤的类型
  5. 从零开始的Flutter之旅: StatelessWidget
  6. 无方向盘汽车、全球首个航天大模型、开物平台升级:百度世界AI成果展示
  7. 音画俱佳的极米H3S、NEW Z6X、Z6X Pro,电影爱好者不能错过的投影仪
  8. 计算机主板设置中的英语,电脑主板Award BIOS设置中英文翻译
  9. 3D建模软件快捷键操作:3DMAX篇(第三期)
  10. 基于BSV的存储证明