2020-11-20 10:17:37 +08:00
|
|
|
|
let options = {
|
|
|
|
|
SDKAppID: 1400435767 // 接入时需要将0替换为您的即时通信 IM 应用的 SDKAppID
|
|
|
|
|
};
|
2020-11-27 11:37:44 +08:00
|
|
|
|
window.tim = TIM.create(options);
|
2020-11-20 10:17:37 +08:00
|
|
|
|
tim.setLogLevel(0);
|
2020-11-27 11:37:44 +08:00
|
|
|
|
function getname(id){
|
|
|
|
|
return new Promise((res, rej)=>{
|
|
|
|
|
let promise = tim.getGroupMemberProfile({
|
|
|
|
|
groupID:window.roomid,
|
|
|
|
|
userIDList:[id],
|
|
|
|
|
memberCustomFieldFilter:["nick"]
|
|
|
|
|
})
|
|
|
|
|
promise.then(function(imResponse) {
|
|
|
|
|
console.log(imResponse.data.memberList); // 群成员列表
|
|
|
|
|
res(imResponse.data.memberList[0].nick)
|
|
|
|
|
}).catch(function(imError) {
|
|
|
|
|
console.warn('getGroupMemberProfile error:', imError);
|
|
|
|
|
setTimeout(()=>{
|
|
|
|
|
getname(id).then((e)=>{
|
|
|
|
|
res(e)
|
|
|
|
|
})
|
|
|
|
|
},1000)
|
|
|
|
|
});
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
2020-11-25 16:32:48 +08:00
|
|
|
|
function formatDateTime (inputTime) {
|
2020-11-27 11:37:44 +08:00
|
|
|
|
inputTime = inputTime * 1000
|
2020-11-25 16:32:48 +08:00
|
|
|
|
var date = new Date(inputTime);
|
|
|
|
|
var y = date.getFullYear();
|
|
|
|
|
var m = date.getMonth() + 1;
|
|
|
|
|
m = m < 10 ? ('0' + m) : m;
|
|
|
|
|
var d = date.getDate();
|
|
|
|
|
d = d < 10 ? ('0' + d) : d;
|
|
|
|
|
var h = date.getHours();
|
|
|
|
|
h = h < 10 ? ('0' + h) : h;
|
|
|
|
|
var minute = date.getMinutes();
|
|
|
|
|
var second = date.getSeconds();
|
|
|
|
|
minute = minute < 10 ? ('0' + minute) : minute;
|
|
|
|
|
second = second < 10 ? ('0' + second) : second;
|
|
|
|
|
return h + ':' + minute + ':' + second;
|
|
|
|
|
}
|
2020-11-20 10:17:37 +08:00
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.MESSAGE_RECEIVED, function(event) {
|
|
|
|
|
// 收到推送的单聊、群聊、群提示、群系统通知的新消息,可通过遍历 event.data 获取消息列表数据并渲染到页面
|
|
|
|
|
// event.name - TIM.EVENT.MESSAGE_RECEIVED
|
|
|
|
|
// event.data - 存储 Message 对象的数组 - [Message]
|
2020-11-25 16:32:48 +08:00
|
|
|
|
console.log(event.data)
|
|
|
|
|
for(let i in event.data){
|
|
|
|
|
if(!event.data[i].payload.text){
|
|
|
|
|
break;
|
|
|
|
|
}
|
2020-11-27 11:37:44 +08:00
|
|
|
|
if(event.data[i].payload.text.includes("beelinkMuteUserId") || event.data[i].payload.text.includes("inkTurnOffTheCameraUserId")){
|
|
|
|
|
break;
|
|
|
|
|
}
|
2020-11-25 16:32:48 +08:00
|
|
|
|
const list = $("#liaotianliebiao")
|
|
|
|
|
const html = ` <div>
|
|
|
|
|
<p>${formatDateTime(event.data[i].time)}</p>
|
|
|
|
|
<p><span>${event.data[i].nick}:</span>${event.data[i].payload.text}</p>
|
|
|
|
|
</div>`
|
|
|
|
|
|
|
|
|
|
list.append(html)
|
|
|
|
|
}
|
2020-11-20 10:17:37 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.MESSAGE_REVOKED, function(event) {
|
|
|
|
|
// 收到消息被撤回的通知
|
|
|
|
|
// event.name - TIM.EVENT.MESSAGE_REVOKED
|
|
|
|
|
// event.data - 存储 Message 对象的数组 - [Message] - 每个 Message 对象的 isRevoked 属性值为 true
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.MESSAGE_READ_BY_PEER, function(event) {
|
|
|
|
|
// SDK 收到对端已读消息的通知,即已读回执。使用前需要将 SDK 版本升级至 v2.7.0 或以上。仅支持单聊会话。
|
|
|
|
|
// event.name - TIM.EVENT.MESSAGE_READ_BY_PEER
|
|
|
|
|
// event.data - event.data - 存储 Message 对象的数组 - [Message] - 每个 Message 对象的 isPeerRead 属性值为 true
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.CONVERSATION_LIST_UPDATED, function(event) {
|
|
|
|
|
// 收到会话列表更新通知,可通过遍历 event.data 获取会话列表数据并渲染到页面
|
|
|
|
|
// event.name - TIM.EVENT.CONVERSATION_LIST_UPDATED
|
|
|
|
|
// event.data - 存储 Conversation 对象的数组 - [Conversation]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.GROUP_LIST_UPDATED, function(event) {
|
2020-11-27 14:53:43 +08:00
|
|
|
|
console.log(event.data)
|
2020-11-20 10:17:37 +08:00
|
|
|
|
// 收到群组列表更新通知,可通过遍历 event.data 获取群组列表数据并渲染到页面
|
|
|
|
|
// event.name - TIM.EVENT.GROUP_LIST_UPDATED
|
|
|
|
|
// event.data - 存储 Group 对象的数组 - [Group]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.PROFILE_UPDATED, function(event) {
|
|
|
|
|
// 收到自己或好友的资料变更通知
|
|
|
|
|
// event.name - TIM.EVENT.PROFILE_UPDATED
|
|
|
|
|
// event.data - 存储 Profile 对象的数组 - [Profile]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.BLACKLIST_UPDATED, function(event) {
|
|
|
|
|
// 收到黑名单列表更新通知
|
|
|
|
|
// event.name - TIM.EVENT.BLACKLIST_UPDATED
|
|
|
|
|
// event.data - 存储 userID 的数组 - [userID]
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.ERROR, function(event) {
|
|
|
|
|
// 收到 SDK 发生错误通知,可以获取错误码和错误信息
|
|
|
|
|
// event.name - TIM.EVENT.ERROR
|
|
|
|
|
// event.data.code - 错误码
|
|
|
|
|
// event.data.message - 错误信息
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.SDK_NOT_READY, function(event) {
|
|
|
|
|
// 收到 SDK 进入 not ready 状态通知,此时 SDK 无法正常工作
|
|
|
|
|
// event.name - TIM.EVENT.SDK_NOT_READY
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.KICKED_OUT, function(event) {
|
|
|
|
|
// 收到被踢下线通知
|
|
|
|
|
// event.name - TIM.EVENT.KICKED_OUT
|
|
|
|
|
// event.data.type - 被踢下线的原因,例如:
|
|
|
|
|
// - TIM.TYPES.KICKED_OUT_MULT_ACCOUNT 多实例登录被踢
|
|
|
|
|
// - TIM.TYPES.KICKED_OUT_MULT_DEVICE 多终端登录被踢
|
|
|
|
|
// - TIM.TYPES.KICKED_OUT_USERSIG_EXPIRED 签名过期被踢 (v2.4.0起支持)。
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
tim.on(TIM.EVENT.NET_STATE_CHANGE, function(event) {
|
|
|
|
|
// 网络状态发生改变(v2.5.0 起支持)。
|
|
|
|
|
// event.name - TIM.EVENT.NET_STATE_CHANGE
|
|
|
|
|
// event.data.state 当前网络状态,枚举值及说明如下:
|
|
|
|
|
// \- TIM.TYPES.NET_STATE_CONNECTED - 已接入网络
|
|
|
|
|
// \- TIM.TYPES.NET_STATE_CONNECTING - 连接中。很可能遇到网络抖动,SDK 在重试。接入侧可根据此状态提示“当前网络不稳定”或“连接中”
|
|
|
|
|
// \- TIM.TYPES.NET_STATE_DISCONNECTED - 未接入网络。接入侧可根据此状态提示“当前网络不可用”。SDK 仍会继续重试,若用户网络恢复,SDK 会自动同步消息
|
|
|
|
|
});
|
|
|
|
|
genTestUserSig(window.mid).then((res)=>{
|
2020-11-25 16:32:48 +08:00
|
|
|
|
tim.login({userID: window.mid, userSig: res.data}).then(function(imResponse) {
|
|
|
|
|
console.log(imResponse.data); // 登录成功
|
|
|
|
|
if (imResponse.data.repeatLogin === true) {
|
|
|
|
|
// 标识账号已登录,本次登录操作为重复登录。v2.5.1 起支持
|
|
|
|
|
console.log(imResponse.data.errorInfo);
|
|
|
|
|
}
|
|
|
|
|
}).catch(function(imError) {
|
|
|
|
|
console.warn('login error:', imError); // 登录失败的相关信息
|
|
|
|
|
});
|
2020-11-20 10:17:37 +08:00
|
|
|
|
|
|
|
|
|
})
|
2020-11-25 16:32:48 +08:00
|
|
|
|
tim.on(TIM.EVENT.SDK_READY, function (){
|
|
|
|
|
tim.updateMyProfile({
|
2020-11-27 14:53:43 +08:00
|
|
|
|
nick: window.uname
|
2020-11-25 16:32:48 +08:00
|
|
|
|
});
|
|
|
|
|
const promise = tim.createGroup({
|
|
|
|
|
type: TIM.TYPES.GRP_AVCHATROOM,
|
|
|
|
|
name: 'live',
|
|
|
|
|
groupID: window.roomid
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
promise.then(function(imResponse) { // 创建成功
|
|
|
|
|
console.log(imResponse.data.group); // 创建的群的资料
|
|
|
|
|
tim.joinGroup({
|
|
|
|
|
groupID: window.roomid,
|
|
|
|
|
type: TIM.TYPES.GRP_AVCHATROOM
|
|
|
|
|
}).then((res)=>{
|
|
|
|
|
switch (res.data.status) {
|
|
|
|
|
case TIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: // 等待管理员同意
|
|
|
|
|
break;
|
|
|
|
|
case TIM.TYPES.JOIN_STATUS_SUCCESS: // 加群成功
|
|
|
|
|
console.log(res.data.group); // 加入的群组资料
|
|
|
|
|
break;
|
|
|
|
|
case TIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: // 已经在群中
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}).catch((err)=>{
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
}).catch(function(imError) {
|
|
|
|
|
console.warn('createGroup error:', imError); // 创建群组失败的相关信息
|
|
|
|
|
tim.joinGroup({
|
|
|
|
|
groupID: window.roomid,
|
|
|
|
|
type: TIM.TYPES.GRP_AVCHATROOM
|
|
|
|
|
}).then((res)=>{
|
|
|
|
|
switch (res.data.status) {
|
|
|
|
|
case TIM.TYPES.JOIN_STATUS_WAIT_APPROVAL: // 等待管理员同意
|
|
|
|
|
break;
|
|
|
|
|
case TIM.TYPES.JOIN_STATUS_SUCCESS: // 加群成功
|
|
|
|
|
console.log(res.data.group); // 加入的群组资料
|
|
|
|
|
break;
|
|
|
|
|
case TIM.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: // 已经在群中
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}).catch((err)=>{
|
|
|
|
|
console.log(err)
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
function sendtext(text){
|
|
|
|
|
const m = tim.createTextMessage({
|
|
|
|
|
to: window.roomid,
|
|
|
|
|
conversationType: TIM.TYPES.CONV_GROUP,
|
|
|
|
|
payload: {
|
|
|
|
|
text: text
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
const promise = tim.sendMessage(m);
|
|
|
|
|
promise.then(function(imResponse) {
|
|
|
|
|
// 发送成功
|
|
|
|
|
console.log(imResponse);
|
|
|
|
|
|
|
|
|
|
const list = $("#liaotianliebiao")
|
|
|
|
|
const html = ` <div>
|
|
|
|
|
<p>${formatDateTime(imResponse.data.message.time)}</p>
|
2020-11-27 14:53:43 +08:00
|
|
|
|
<p><span>${window.uname}:</span>${imResponse.data.message.payload.text}</p>
|
2020-11-25 16:32:48 +08:00
|
|
|
|
</div>`
|
|
|
|
|
console.log(html)
|
|
|
|
|
list.append(html)
|
|
|
|
|
}).catch(function(imError) {
|
|
|
|
|
// 发送失败
|
|
|
|
|
console.warn('sendMessage error:', imError);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
$(()=>{
|
|
|
|
|
$("#fasongxiaoxi").click(()=>{
|
|
|
|
|
const text = $("#shurukuang").val()
|
|
|
|
|
console.log(text)
|
|
|
|
|
sendtext(text)
|
|
|
|
|
$("#shurukuang").val("")
|
|
|
|
|
})
|
2020-11-30 10:01:43 +08:00
|
|
|
|
$("#shurukuang").keyup(function(event){
|
|
|
|
|
if(event.keyCode ==13){
|
|
|
|
|
//这里填写你要做的事件
|
|
|
|
|
//TODO
|
|
|
|
|
const text = $("#shurukuang").val()
|
|
|
|
|
console.log(text)
|
|
|
|
|
sendtext(text)
|
|
|
|
|
$("#shurukuang").val("")
|
|
|
|
|
}
|
|
|
|
|
});
|
2020-11-25 16:32:48 +08:00
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-30 10:01:43 +08:00
|
|
|
|
});
|
2020-11-20 10:17:37 +08:00
|
|
|
|
|
2020-11-30 10:01:43 +08:00
|
|
|
|
|
2020-11-27 11:37:44 +08:00
|
|
|
|
function sendjinyan(id,type){
|
|
|
|
|
const m = tim.createTextMessage({
|
|
|
|
|
to: window.roomid,
|
|
|
|
|
conversationType: TIM.TYPES.CONV_GROUP,
|
|
|
|
|
payload: {
|
|
|
|
|
text: `beelinkMuteUserId:${id},isClose:${type}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
const promise = tim.sendMessage(m);
|
|
|
|
|
promise.then(function(imResponse) {
|
|
|
|
|
// 发送成功
|
|
|
|
|
console.log(imResponse);
|
|
|
|
|
|
|
|
|
|
}).catch(function(imError) {
|
|
|
|
|
// 发送失败
|
|
|
|
|
console.warn('sendMessage error:', imError);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function sendsx(id,type){
|
|
|
|
|
const m = tim.createTextMessage({
|
|
|
|
|
to: window.roomid,
|
|
|
|
|
conversationType: TIM.TYPES.CONV_GROUP,
|
|
|
|
|
payload: {
|
|
|
|
|
text: `beelinkTurnOffTheCameraUserId:${id},isClose:${type}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
const promise = tim.sendMessage(m);
|
|
|
|
|
promise.then(function(imResponse) {
|
|
|
|
|
// 发送成功
|
|
|
|
|
console.log(imResponse);
|
|
|
|
|
|
|
|
|
|
}).catch(function(imError) {
|
|
|
|
|
// 发送失败
|
|
|
|
|
console.warn('sendMessage error:', imError);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-20 10:17:37 +08:00
|
|
|
|
// 开始登录
|