继续跨频道聊天
现在,我们处于应用程序的稳态部分(图4-15),两个对等方只是轮流要求服务器将消息中继到另一方。
图4-15 稳定状态下的信令信道使用
邮件交换是通过以下代码在客户端实现的:
...
// Handle 'response' message
socket.on('response', function (response) {
console.log('Got response from other peer: ' + response);
div.insertAdjacentHTML( 'beforeEnd', '<p>Time: ' + (performance.now() / 1000).toFixed(3) + ' --> Got response from other peer: </p>');
div.insertAdjacentHTML( 'beforeEnd', '<p style="color:blue">' + response + '</p>');
// Keep on chatting
var chatMessage = prompt('Keep on chatting. Write "Bye" to quit conversation', "");
...
...
// Keep on going: send response back to remote party (through server)
socket.emit('response', {
channel: channel,
message: chatMessage
});
}
});
基本上,在接收到新消息后,每个对等方都会执行通常的日志记录操作,然后提示用户进行新的输入。 只要插入的文本的值不是 Bye
,它就会向对方发送新消息。 图4-16 显示了在通道中发出新消息之前发起者的窗口。
图4-16 继续聊天(发起方)
图4-17 依次显示了接收到这样的消息后的服务器控制台,该消息照常广播到远程方。
图4-17 继续聊天(服务器端)
最后,图4-18 显示了接收方接收到的中继消息。
图4-18 继续聊天(加入方)
当前内容版权归 Salvatore Loreto & Simon Pietro Romano 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Salvatore Loreto & Simon Pietro Romano .