即时通讯IMWEB
腾讯云即时通信IMSDK
官⽅简介
腾讯是国内最早也是最⼤的即时通信开发商,QQ和微信已经成为每个互联⽹⽤户必不可少的应⽤。顺应⾏业数字化转型
的趋势,腾讯将⾼并发、⾼可靠的即时通信能⼒进⾏开放,您可以轻易地根据腾讯提供的SDK将即时通信功能集成到
App中,来满⾜您业务的各种需求。
针对开发者的不同阶段需求及不同场景,即时通信IM团队提供了⼀系列解决⽅案,包括:Android、iOS、Windows、
Web的SDK组件、服务端集成RESTAPI接⼝、第三⽅回调接⼝等。利⽤这些组件和能⼒,开发者可以简单快捷地构
建⾼可靠且稳定的即时通信产品,随⼼所想,触达全球。
使⽤⽅法:
1.安装sdk
//IMWebSDK
npminstalltim-js-sdk--save
//发送图⽚、⽂件等消息需要的上传插件(不需要可不安)
npminstalltim-upload-plugin--save
2.创建SDK实例
//创建SDK实例,()⽅法对于同⼀个SDKAppID只会返回同⼀份实例
privateoptions={
SDKAppID:0,//接⼊时需要将0替换为您的即时通信应⽤的SDKAppID
urID:'',
urSig:'',
};
privatecreateTim(){
=({SDKAppID:ID});
/**设置SDK⽇志输出级别,详细分级请参见tLogLevel接⼝的说明
*0普通级别,⽇志量较多,接⼊时建议使⽤
*1relea级别,SDK输出关键信息,⽣产环境时建议使⽤
*2告警级别,SDK只输出告警和错误级别的⽇志
*3错误级别,SDK只输出错误级别的⽇志
*4⽆⽇志级别,SDK将不打印任何⽇志
*/
Level(0);
//注册腾讯云即时通信IM上传插件,即时通信IMSDK发送图⽚、语⾳、视频、⽂件等消息需要使⽤上传插件,将⽂件上传到腾讯云对象存储(不需要可不注册)
erPlugin({'tim-upload-plugin':TIMUploadPlugin});
//添加监听
();
}
注意:create=>tLogLevel=>监听=>login
在login前调⽤监听事件,避免漏掉SDK派发的事件
3.监听
letonMessageReceived=function(event){
//收到推送的单聊、群聊、群提⽰、群系统通知的新消息,可通过遍历获取消息列表数据并渲染到页⾯
//E_RECEIVED
//-存储Message对象的数组-[Message]
};
(E_RECEIVED,onMessageReceived);
4.取消监听
(E_RECEIVED,onMessageReceived);
注意:对于同⼀个事件,如[E_RECEIVED],调⽤[on]接⼝监听事件和调⽤[off]接⼝取消监听
事件,handler参数应当指向同⼀个function,避免以下写法:
//注意!以下代码有bug,⽆法取消监听E_RECEIVED,因为bind()⽅法每次会返回⼀个新的函数
(E_RECEIVED,(this));
(E_RECEIVED,(this));
//建议写法
(E_RECEIVED,onMessageReceived,this);
(E_RECEIVED,onMessageReceived);
调⽤[logout]接⼝,不会取消监听事件,需接⼊侧主动调⽤[off]接⼝
5.登录
使⽤⽤户ID(urID)和签名串(urSig)登录即时通信IM,这两个字段通常由服务端下发
letpromi=({urID:'yoururID',urSig:'yoururSig'});
(function(imRespon){
();//登录成功
if(Login===true){
//标识账号已登录,本次登录操作为重复登录。v2.5.1起⽀持
(nfo);
}
}).catch(function(imError){
('loginerror:',imError);//登录失败的相关信息
});
注意1:登录成功,需等待sdk处于ready状态后才能调⽤[ndMessage]等需要鉴权的接⼝。
6.登出
letpromi=();
(function(imRespon){
();//登出成功
}).catch(function(imError){
('logouterror:',imError);
});
7.销毁SDK实例。SDK会先logout,然后断开WebSocket长连接,并释放资源
y();
//取消监听事件
();
8.⽅法的使⽤
⽅法接⼝实在是太多了,这⾥只⽰例发送消息:
//发送⾃定义消息
publicndMessage(option:{action:string;content:object},groupid:string){
if(!||dyStatus!=='SDK_READY'){
return;
}
//创建⾃定义消息
constmessage=CustomMessage({
to:groupid,
conversationType:_GROUP,
//消息优先级,⽤于群聊(v2.4.2起⽀持)。如果某个群的消息超过了频率限制,后台会优先下发⾼优先级的消息
//⽀持的枚举值:_PRIORITY_HIGH,_PRIORITY_NORMAL(默认),_PRIORITY_LOW,_PRIORIT
//priority:_PRIORITY_HIGH,
payload:{
data:ify(option),
description:'',
extension:'',
},
});
//2.发送消息
.ndMessage(message)
.then(function(imRespon){
//发送成功
('ndMessagesuccess:',imRespon);
})
.catch(function(imError){
//发送失败
//聊天消息發送失敗
if(=='chat'){
('發送失敗,請重新發送');
}
('ndMessageerror:',imError);
});
}
9.监听EVENT
标红的事件,是必须做处理的事件,其余的监听事件根据⾃⼰的业务需要进⾏增减
_CODE错误码
常见错误码:
2000⽆SDKAppID
2002⽆urID
2003⽆urSig
2024⽤户未登录
2025重复登录
2100消息发送失败
2800⽹络错误
2801请求超时
2805未连接到⽹络
本文发布于:2023-01-03 01:10:12,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/81156.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |