let options = { SDKAppID: 1400435767 // 接入时需要将0替换为您的即时通信 IM 应用的 SDKAppID }; window.tim = TIM.create(options); tim.setLogLevel(0); 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) }); }) } function formatDateTime (inputTime) { inputTime = inputTime * 1000 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; } tim.on(TIM.EVENT.MESSAGE_RECEIVED, function(event) { // 收到推送的单聊、群聊、群提示、群系统通知的新消息,可通过遍历 event.data 获取消息列表数据并渲染到页面 // event.name - TIM.EVENT.MESSAGE_RECEIVED // event.data - 存储 Message 对象的数组 - [Message] console.log(event.data) for(let i in event.data){ if(!event.data[i].payload.text){ break; } if(event.data[i].payload.text.includes("beelinkMuteUserId") || event.data[i].payload.text.includes("inkTurnOffTheCameraUserId")){ break; } const list = $("#liaotianliebiao") const html = `

${formatDateTime(event.data[i].time)}

${event.data[i].nick}:${event.data[i].payload.text}

` list.append(html) } }); 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) { console.log(event.data) // 收到群组列表更新通知,可通过遍历 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) { console.log("用户下线") // 收到被踢下线通知 // 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)=>{ 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); // 登录失败的相关信息 }); }) tim.on(TIM.EVENT.SDK_READY, function (){ tim.updateMyProfile({ nick: window.uname }); 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 = `

${formatDateTime(imResponse.data.message.time)}

${window.uname}:${imResponse.data.message.payload.text}

` 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("") }) $("#shurukuang").keyup(function(event){ if(event.keyCode ==13){ //这里填写你要做的事件 //TODO const text = $("#shurukuang").val() console.log(text) sendtext(text) $("#shurukuang").val("") } }); }) }); 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); }); } // 开始登录