→面接を開始します。
入室中の面接者に学生がノック(入室確認)をして入室するまでの、
Real-time Messaging SDKのメッセージング処理の流れを記載しています。
※シーケンス図に記載したAPIについては下記リファレンスを参照してください。
function sendMessageToPeer(localMessage,id){
//メッセージの送信
rtm.clientRtm.sendMessageToPeer({text:localMessage}, id).then(function(){
}).catch(function(err){
console.log("AgoraRTM client failed to sending role" + err);
});
}
function receiveFromPeerMessage(){
//メッセージの受信(MessageFromPeer)
rtm.clientRtm.on('MessageFromPeer', function (sentMessage, senderId) {
//ノック(入室確認)の場合
if ((sentMessage.text == senderId + ":requested") && (options.uid == host)){
var res = confirm("Are you sure " + senderId + " to be joined?");
(res == true) ? permit(senderId) : deny(senderId);
return;
}
//許可の場合
if (sentMessage.text == options.uid + ":permitted"){
join();
return;
}
//不許可の場合
if (sentMessage.text == options.uid + ":denied"){
alert("Please wait for a while as we will invite you from the host.");
return;
}
});
}
async function invitation () {
//招待先の設定
rtm.localInvitation = await rtm.clientRtm.createLocalInvitation($("#audienceId").val());
//招待の送付
await rtm.localInvitation.send();
}
function receiveFromPeerMessage(){
//招待の受信
rtm.clientRtm.on('RemoteInvitationReceived', function (remoteInvitation) {
var res = confirm("You got an invitation from the host. Do you want to enter the room?");
if (res == true){
remoteInvitation.accept(); //受領
join();
}else{
remoteInvitation.refuse(); //拒否
}
});
}
動作を確認します。
(AppID、Channelの入力、Intervierwerを選択し、Joinをクリック)
(AppID、Channelの入力、Studentを選択し、Joinをクリック)
※ダイアログをOKすると入室許可、キャンセルすると入室不許可
(面接者はダイアログをOKする)
学生側で入室が開始し、面接者と対面する。
※面接者がダイアログをキャンセル(不許可)にした場合は5へ
学生側で不許可を伝えるダイアログが表示される。
(面接者はStudent IDを選択し、Invitationをクリック)
(学生はダイアログをOKする)
学生側で入室が開始し、面接者と対面する。
ノッカー(入室確認)と入室ができました。