Spec-Zone.ru › Web APIs

Завершение вызова

  • Предыдущая
  • Следующая

Вы почти закончили! Последнее, что нужно сделать, это обеспечить возможность завершения вызова для ваших абонентов. Наиболее элегантным способом является закрытие соединения с помощью функции close(), что можно сделать в обработчике событий для кнопки "Повесить трубку".

  1. Добавьте следующее в конец вашего файла script.js:

    const hangUpBtn = document.querySelector(".hangup-btn");
    hangUpBtn.addEventListener("click", () => {
      conn.close();
      showCallContent();
    });
    
  2. Когда соединение закрыто, вам также нужно отобразить правильное содержимое HTML, поэтому вы можете просто вызвать свою функцию showCallContent(). Внутри обработчика событий call, вам также нужно убедиться, что удалённый браузер обновлён. Для этого добавьте ещё один обработчик событий внутри обработчика событий peer.on('call', (stream) => { }, внутри условного блока.

    conn.on("close", () => {
      showCallContent();
    });
    

    Таким образом, если человек, который инициировал вызов, нажмёт "Повесить трубку" первым, оба браузера всё ещё будут обновлены с новым состоянием.

  3. Ещё раз протестируйте ваше приложение и попробуйте завершить вызов.

Примечание: Событие on('close'), вызываемое на переменной conn, пока не доступно в Firefox; это просто означает, что в Firefox каждый звонящий должен повесить трубку индивидуально.

Предупреждение: Способ, которым мы в настоящее время написали код, означает, что когда соединение закрыто, оба браузера будут обновлены **только** если человек, который инициировал вызов, нажмёт "Повесить трубку" первым. Если человек, который ответил на вызов, нажмёт "Повесить трубку" первым, другому абоненту также нужно будет нажать "Повесить трубку", чтобы увидеть правильный HTML.

  • Предыдущая
  • Следующая

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Build_a_phone_with_peerjs/Connect_peers/End_a_call

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API