asyncfunctionjoin(){/*省略*///hostの場合のみpublishするif(options.role=="host"){[localTracks.audioTrack,localTracks.videoTrack]=awaitPromise.all([// create local tracks, using microphone and cameraAgoraRTC.createMicrophoneAudioTrack(),AgoraRTC.createCameraVideoTrack()]);// play local video tracklocalTracks.videoTrack.play("local-player");$("#local-player-name").text(`localVideo(${options.uid})`);// publish local stream// publish local tracks to channelawaitclient.publish(Object.values(localTracks));console.log("publish success");}}
functionsendChannelMessage(localMessage){setDispMessage(localMessage);rtc.channelRtm.sendMessage({text:localMessage}).then(function(){console.log("AgoraRTM client succeed in sending channel message: "+localMessage);}).catch(function(err){console.log("AgoraRTM client failed to sending role"+err);});}
メッセージ処理の追加(受信部分)
functionreceiveChannelMessage(){//省略//rtc.channelRtm.on("ChannelMessage",function(sentMessage,senderId){console.log("AgoraRTM client got message: "+JSON.stringify(sentMessage)+" from "+senderId);setDispMessage(sentMessage.text);console.log((sentMessage.text==senderId+":requested")&&(options.uid==host));if((sentMessage.text==senderId+":requested")&&(options.uid==host)){varres=confirm("Are you sure "+senderId+" to be speaker?");(res==true)?permit(senderId):deny(senderId);}//省略//});}