集成方式


集成

可以通过以下三种方式引用web sdk,其中后两种为从版本1.4.5开始新增的引用方式:

  1. 将文件复制到本地,引用本地文件;
  2. 添加<script>标签,引用线上文件;
  3. 使用NPM。

引用本地文件

1. 下载web sdk并解压后,将 /sdk/dist/strophe-1.2.8.min.js、/sdk/dist/websdk-1.4.11.js、/demo/javascript/dist/webim.config.js 拷贝到系统相应的目录下。

2. 新建 html 文件并 严格按照如下顺序 引入相关 js 脚本。

<script type='text/javascript' src='webim.config.js'></script>
<script type='text/javascript' src='strophe-1.2.8.min.js'></script>
<script type='text/javascript' src='websdk-1.4.11.js'></script>

说明:Web SDK V1.4.5向下兼容V1.1.2和V1.1.1。关于详细的引用文件和配置参数的方法,请查看本页“兼容性”的内容。

添加<script>标签

1. 添加以下<script>标签。

<script src='http://downloads.easemob.com/downloads/cdn/websdk-1.4.11.js'></script>

2. 通过webIM命名空间访问websdk。

注意:该方式只引用了web sdk,仍需在本地引用config和strophe文件,并配置config文件内的参数。

NPM

web sdk已发布到NPM。采用如下方法集成:

1. 通过npm安装web sdk。

npm install easemob-websdk --save

2. 先require,再访问WebIM。

require('easemob-websdk'); 

注意:该方式只引用了web sdk,仍需在本地引用config和strophe文件,并配置config文件内的参数。

配置

在webim.config.js文件内进行以下配置:

xmppURL: 'im-api.easemob.com',            // xmpp Server地址,对于在console.easemob.com创建的appKey,固定为该值

apiURL: 'http://a1.easemob.com',          // rest Server地址,对于在console.easemob.com创建的appkey,固定为该值

appkey: 'easemob-demo#chatdemoui',        // App key

https : false,                            // 是否使用https

isMultiLoginSessions: false,              // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能

isAutoLogin: true,                        // 自动出席,(如设置为false,则表示离线,无法收消息,需要在登录成功后手动调用conn.setPresence()才可以收消息)

isDebug: false,                           // 打开调试,会自动打印log,在控制台的console中查看log

autoReconnectNumMax: 2,                   // 断线重连最大次数

autoReconnectInterval: 2,                 // 断线重连时间间隔

heartBeatWait: 4500,                       // 使用webrtc(视频聊天)时发送心跳包的时间间隔,单位ms

delivery: true,                           // 是否发送已读回执

注:建议xmppURL、apiURL、https三个参数统一,否则ie9以下会报拒绝访问的错误。

例:

  • https: false
xmppURL: 'im-api.easemob.com',

apiURL: 'http://a1.easemob.com',

appkey: 'easemob-demo#chatdemoui',

https : false, 

isMultiLoginSessions: false

isAutoLogin: true

  • https: true
xmppURL: 'im-api.easemob.com',

apiURL: 'https://a1.easemob.com',

appkey: 'easemob-demo#chatdemoui',

https : true, 

isMultiLoginSessions: false 

isAutoLogin: true

兼容性

兼容V1.1.2

Web SDK V1.4.5 向下兼容 V1.1.2。如果直接用 V1.1.2 的 demo 嵌入 V1.4.5 的SDK,需要修改旧的 webim.config.js,在第一行WebIM.config = {的前面插入一行var WebIM = {};。完成后,示例如下:

var WebIM = {};
  WebIM.config = {

兼容V1.1.1

Web SDK V1.4.5 向下兼容 V1.1.1。从V1.1.1升级到V1.4.5时,需要做如下操作:

第1步:修改引入的SDK文件

1. 下载Web SDK V1.4.5并解压后,将 /sdk/dist/websdk-1.4.5.js 和 /sdk/disk/websdk.shim.js 拷贝到系统相应的目录下。

2. 在原来的引用SDK的html文件中增加一行代码window.WebIM = {};,并使用上述两个文件替换原来引用的SDK的js文件。

替换前:

<!--sdk相关的js-->
<script type='text/javascript' src='static/sdk/strophe.js'></script>
<script type='text/javascript' src='static/sdk/easemob.im-1.1.1.js'></script>
<script type='text/javascript' src='static/sdk/easemob.im.shim.js'></script>
<!--webim相关配置-->
<script type='text/javascript' src='static/js/easemob.im.config.js'></script>

替换后:

<!--sdk相关的js-->
<script type='text/javascript' src='static/sdk/strophe.js'></script>
<script>
    window.WebIM = {};       // 这行代码需要加在引用strophe.js文件的代码后面
</script>
<script type='text/javascript' src='static/sdk/websdk-1.4.5.js'></script>
<script type='text/javascript' src='static/sdk/websdk.shim.js'></script>
<!--webim相关配置-->
<script type='text/javascript' src='static/js/easemob.im.config.js'></script>

3. 将easemob.im.config.js文件中的参数multiResources修改为isMultiLoginSessions

第2步:修改websdk-1.4.5.js文件

1. 在sdk文件下搜索//class,将下面的connection = function connection(options) 改成window.WebIM.connection = function connection(options)

2. 在sdk文件下搜索connection.prototype.registerUser = function (options),在上面一行添加var connection = window.WebIM.connection;

导入第三方表情包

在项目下面新建一个文件夹,用于存放表情图片文件。 在引用了sdk之后执行如下代码:

WebIM.Emoji = {
    path: 'demo/images/faces/'  /*表情包路径*/
    , map: {
        '[):]': 'ee_1.png',
        '[:D]': 'ee_2.png',
        '[;)]': 'ee_3.png',
        '[:-o]': 'ee_4.png',
        '[:p]': 'ee_5.png'
    }
};

全局变量WebIM添加一个Emoji属性,path表示你表情图片存放的路径,map里面的key表示代表表情图片的字符,value表示表情图片的文件名。

发送和接收表情消息与文本消息类似,如果发送的文本消息中带有表情的key字符,sdk会将此消息转换成表情图片的实际路径,如:文本消息中包含“[):]“字符串,则解析为WebIM.Emoji.path+WebIM.Emoji.map['[):]']= “demo/images/faces/ee_1.png”。


上一页:Web IM 介绍

下一页:Web SDK基础功能