加入信令信道

现在,我们转到第二个客户端,即通道连接器,重点关注 图4-6 所示的呼叫流程部分。

图4-6

图4-6 加入已经存在的通道

为了完整起见,我们这次将使用 Firefox 作为客户端浏览器,在加载应用程序页面后,其外观如 图4-7 所示。

如前所述,客户端首先连接到服务器,然后发送创建或加入请求。 由于这次请求方不是发起方,因此服务器的行为将由以下代码段驱动:

  1. ...
  2. } else if (numClients == 1) {
  3. // Inform initiator...
  4. io.sockets.in(channel).emit('remotePeerJoining', channel);
  5. // Let the new peer join channel
  6. socket.join(channel);
  7. socket.broadcast.to(channel).emit('broadcast: joined', 'S --> broadcast(): client ' + socket.id + ' joined channel ' + channel);
  8. ...

基本上,服务器将:

  1. 通知通道发起者新加入请求的到来。
  2. 允许新客户进入已经存在的房间。
  3. 更新(通过广播消息)频道启动程序有关加入操作成功完成的信息,使其准备开始新的对话。

图4-7

图4-7 在 Firefox 中加载的示例页面(通道连接器)

图4-8 报告了这样的一系列操作,该图显示了呼叫流程此阶段的服务器控制台。

图4-8

图4-8 信令服务器管理加入者的请求

图4-9 和 图4-10 分别显示了加入者和发起者的窗口,在加入者和发起者成功加入后者创建的信令通道之后。 正如读者所认识到的那样,此服务器端操作序列在启动器的 HTML5 页面(图4-10)中以红色报告,现在提示用户要在服务器中介的通信路径上交换第一条消息。

图4-9

图4-9 加入频道后的加入者窗口

图4-10

图4-10 设置通道后开始对话