<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>huanxin (环信)</title>
    <link>https://ruby-china.org/huanxin</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>如何在微信小程序里实现聊天室的功能？</title>
      <description>&lt;p&gt;准备工作
下载环信 小程序 demo+sdk
git clone &lt;a href="https://github.com/easemob/webim-weixin-xcx" rel="nofollow" target="_blank"&gt;https://github.com/easemob/webim-weixin-xcx&lt;/a&gt;
创建一个文件夹，将 demo 中的文件 comps、images、sdk、utils 拷贝到新的文件，文件目录说明&lt;/p&gt;

&lt;p&gt;集成
登录环信没什么可说的，这里选择的是使用 username/password 登录，和 demo 中的一样，文件没有进行任何更改&lt;/p&gt;

&lt;p&gt;在 app.js 中注册的 WebIM.conn.listen, 然后在 登陆成功的回调 onOpened 设置的跳转页面，并将登陆的 username 赋给 myName，传到新的页面中使用&lt;/p&gt;

&lt;p&gt;修改 roomlist.js 获取聊天室列表，是分页获取的，这里先偷个懒，获取了第一页 20 个聊天室&lt;/p&gt;

&lt;p&gt;然后将 listChatrooms() 分别在 onLoad、onShow 内，更改下，将原有的 listGroups() 替换掉
然后在 roomlist.wxml 修改对应的 变量绑定名称&lt;/p&gt;

&lt;p&gt;demo 中的 group.js 中，获取到的是当前登陆账号已加入的群组，咱们做的是聊天室功能，所以需要有一个加入的操作，找 roomlist.js 中找到 into_room: function (event)，然后填写加入聊天室的方法，我是直接在当前这个里面加的跳转到聊天页面，并将当前登陆的 IDmyName，聊天室 IDgroupID，聊天室名称 your 传给新页面&lt;/p&gt;

&lt;p&gt;Ex：监听是否加入聊天室成功的回调是在 onPresence 中，type:memberJoinChatRoomSuccess，正常是监听这个回调跳转页面，有点麻烦就直接这样吧
到会话页面后，需要修改一下对应的消息格式，在 comps/chat/suit 目录下，将里面的文件对应的 js 文件根据文档给聊天室发送消息 格式进行修改，聊天室消息和群组消息不同，所以我目前是直接将 getSendToParam()、isGroupChat() 注释，改成下面这样，demo 中下面还有代码的，这里就用 …… 代替了&lt;/p&gt;

&lt;p&gt;就这样了，简单集成聊天室功能，demo 中的 UI 是开源的，可以根据自己的需求更改~下面是具体实现过程。代码也放在 github 上了，有需要的兄弟自取。demo 下载地址：&lt;a href="https://github.com/lizgDonkey/room-xcx" rel="nofollow" target="_blank"&gt;https://github.com/lizgDonkey/room-xcx&lt;/a&gt;&lt;/p&gt;</description>
      <author>huanxin</author>
      <pubDate>Sun, 28 Apr 2019 17:54:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/38460</link>
      <guid>https://ruby-china.org/topics/38460</guid>
    </item>
  </channel>
</rss>
