腾讯云聊天sdk(腾讯云视频聊天)
本文目录一览:
- 1、腾讯云IM使用总结
- 2、腾讯云的音视频SDK,能否集成在第三方系统。 比如说是想实现他系统的Web端和Android端的音视频通讯
- 3、uni-app 使用腾讯云im开发app聊天室
- 4、腾讯云sdk大小画面切换
腾讯云IM使用总结
腾讯帝国最重要的产品QQ和微信都是IM为基础,相信腾讯云IM也能有很好的体验,我们在项目上准备使用腾讯云通信。
我们项目的基本需求是App中使用IM,实现基本的聊天功能,有一些我们的值班人员通过IM给App的用户提供实时的业务咨询,同时也提供用户和用户之间的聊天。
由于项目App第一期时间紧,先考虑基于H5或小程序,二期再考虑原生实现Android和iOS版本, AppWorker 会封装这个组件。
基本流程就是App端或小程序有自己的登陆系统,有二种基本角色: 用户 (问题咨询者)和 服务人员 (问题回答者)。用户登陆找到服务人员,然后用do_WebView组件加载聊天网页,实现聊天功能。后期还要逐渐增加其它功能:
这个步骤是所有操作的基础,我们这里选择的是 独立模式 :用户帐号信息由开发者保存,用户身份验证(比如注册与验密)也由开发者负责。
这个登陆指对腾讯云IM的login,因为我们用的是独立模式,则这个动作的前提是这个用户已经成功登陆了业务系统。
这里有二种方式登陆:
这里指客户端发送和接受消息。 WebSDK 是基于H5和小程序的IM的共有js库,它们的差别就是用H5绘制聊天界面还是用小程序绘制,真正的通讯机制完全一样。
不过和Android,iOS的原生比较,WebSDK不支持很多功能,比如不支持短视频,不支持语音发送(支持解析),不支持地理位置(支持解析)。
腾讯云提供了后端云服务REST API来实现很多功能,很多情况需要我们的业务服务端调用这些API来处理IM的一些操作。
这里要注意的一个细节是所有的后端REST API都是以 管理员 身份来获取UserSig和其它操作,在我们的前期准备里管理员是myadmin。
在应用配置里如果配置了我们的业务服务回调URL,在IM聊天中就会自动触发我们的业务服务,通过这个回调和腾讯云后端服务,我们能完成我们的后期几个需求,以下是几个基本流程图:
腾讯云的音视频SDK,能否集成在第三方系统。 比如说是想实现他系统的Web端和Android端的音视频通讯
sdk本来就是提供给第三方系统功能接口,只要第三方系统支持sdk代码就可以
uni-app 使用腾讯云im开发app聊天室
组件地址:
哪找教程引入就行,开发什么端看什么端文档
npm install tim-wx-sdk@2.15.0--save
npm install cos-wx-sdk-v5@0.7.11--save
----------------------------------------------------------
import TIM from 'tim-wx-sdk';
import COS from "cos-wx-sdk-v5";
import logger from './utils/logger'; // app.js
import { genTestUserSig } from './debug/GenerateTestUserSig.js'
在app.vue文件下onLaunch周期里面:
/// userInfo 为判断用户是否登录
if( userInfo != '' || userInfo != undefined ) {
if( uni.getStorageSync('zuserInfo').role == 1 || uni.getStorageSync('zuserInfo').role == 2 ) {
// 连接im
// 如果您已经接入 tim ,请将 uni.tim 修改为 uni.$TUIKit。
uni.$TUIKit = TIM.create({
SDKAppID: ' ' // 填写你申请的AppID
});
uni.$TUIKit.registerPlugin({
'cos-wx-sdk': COS
});
uni.$resetLoginData = this.resetLoginData(userInfo)
uni.$TUIKitTIM = TIM;
uni.$TUIKitEvent = TIM.EVENT;
uni.$TUIKitVersion = TIM.VERSION;
uni.$TUIKitTypes = TIM.TYPES; // 监听系统级事件
uni.$TUIKit.on(uni.$TUIKitEvent.SDK_NOT_READY, this.onSdkNotReady);
uni.$TUIKit.on(uni.$TUIKitEvent.KICKED_OUT, this.onKickedOut);
uni.$TUIKit.on(uni.$TUIKitEvent.ERROR, this.onTIMError);
uni.$TUIKit.on(uni.$TUIKitEvent.NET_STATE_CHANGE, this.onNetStateChange);
uni.$TUIKit.on(uni.$TUIKitEvent.SDK_RELOAD, this.onSDKReload);
uni.$TUIKit.on(uni.$TUIKitEvent.SDK_READY, this.onSDKReady);
}
}
// TODO:
resetLoginData(info) {
let _this = this
this.globalData.expiresIn = '';
this.globalData.sessionID = '';
this.globalData.userInfoIm = {
userID: info.userId,
userSig: info.txSig,
token: info.token,
phone: info.phone
};
this.globalData.userProfile = null;
uni.$TUIKit.login({userID: info.userId.toString(), userSig: info.txSig.toString()})
.then(function(imResponse) {
// console.log(imResponse.data); // 登录成功
// _this.getUpdateMyProfile()
if (imResponse.data.repeatLogin === true) {
// 标识帐号已登录,本次登录操作为重复登录。v2.5.1 起支持
// console.log(imResponse.data.errorInfo);
}
})
.catch(function(imError) {
console.warn('login error:', imError); // 登录失败的相关信息
});
},
onTIMError() {},
onNetStateChange() {},
onSDKReload() {},
onSDKReady(event) {
let _this = this
_this.getUpdateMyProfile()
_this.getImUnread()
},
onSdkNotReady() {
this.getImLogin()
},
onKickedOut() {
uni.showToast({
title: '您被踢下线',
icon: 'error'
});
let userinfo = ''
uni.setStorageSync('zuserInfo', userinfo)
setTimeout(()={
uni.redirectTo({
url: '/pages/login/login'
});
},2000)
// uni.navigateTo({
// url: './pages/TUI-Login/login'
// });
},
logoutTim() {
uni.$TUIKit.logout()
},
uni.navigateTo({
url: '/pages/TUI-Chat/chat?conversationID=C2C' + this.info.user_id
});
getImUnread() {
uni.$TUIKit.getConversationList().then(res = {
// console.log(res.data.conversationList)
for( let i of res.data.conversationList ) {
if( i.unreadCount != 0 ) {
uni.showTabBarRedDot({index:2})
return
}
}
}).catch(fail = {
// console.log(fail)
});
},
腾讯云sdk大小画面切换
当您在召开视频会议时,可展示宫格模式默认该模式,支持33宫格布局和5宫格布局,即田廊视图,或选择某个人的视频画面单独放大,即演讲者视图。在画面上点击右上角按钮进行分屏模式切奂。
当您需要单独查看某个成员画面可直接鼠标双击该用户的视频画面即可进行放大展示即切换为演讲者视图,并锁定该成员画面。
发表评论
暂时没有评论,来抢沙发吧~