Theo tài liệu mozilla của WebRTC của ..
Xử lý tình trạng kênh thay đổi
Cả hai đồng nghiệp địa phương và từ xa của chúng tôi sử dụng một phương pháp duy nhất để xử lý sự kiện cho thấy một sự thay đổi trong trạng thái kết nối của kênh.
Khi ngang hàng địa phương trải qua một sự kiện mở hoặc đóng, phương pháp handleSendChannelStatusChange() được gọi:
function handleSendChannelStatusChange(event) {
if (sendChannel) {
var state = sendChannel.readyState;
if (state === "open") {
messageInputBox.disabled = false;
messageInputBox.focus();
sendButton.disabled = false;
disconnectButton.disabled = false;
connectButton.disabled = true;
} else {
messageInputBox.disabled = true;
sendButton.disabled = true;
connectButton.disabled = false;
disconnectButton.disabled = true;
}
}
}
Nếu trạng thái của kênh đã thay đổi để "mở", chỉ ra rằng chúng ta đã hoàn thành việc thiết lập mối liên hệ giữa hai đồng nghiệp. Giao diện người dùng được cập nhật tương ứng bằng cách bật hộp nhập văn bản cho thư gửi, tập trung hộp nhập để người dùng có thể bắt đầu nhập ngay lập tức, bật nút "Gửi" và "Ngắt kết nối", giờ đây chúng có thể sử dụng được, và vô hiệu hóa nút "Kết nối", vì nó không cần thiết khi conneciton mở.
Nếu trạng thái đã thay đổi thành "đóng", bộ hành động ngược lại xảy ra: hộp nhập và nút "Gửi" bị tắt, nút "Kết nối" được bật để người dùng có thể mở kết nối mới nếu họ muốn làm như vậy và nút "Ngắt kết nối" bị vô hiệu hóa vì nó không hữu ích khi không có kết nối.
vì vậy hãy thử để chơi với handleReceiveChannelStatusChange
dụ ngang hàng từ xa này, mặt khác, bỏ qua các sự kiện thay đổi trạng thái, ngoại trừ để đăng nhập sự kiện ra cửa sổ Console:
function handleReceiveChannelStatusChange(event) {
if (receiveChannel) {
console.log("Receive channel's status has changed to " +
receiveChannel.readyState);
}
}
Các handleReceiveChannelStatusChange () phương thức nhận được dưới dạng tham số đầu vào sự kiện xảy ra; đây sẽ là một RTCDataChannelEvent.
Chỉ cần chụp trong bóng tối: thử lưu các ứng dụng SDP và ICE và thực hiện lại pha tín hiệu, nhưng với dữ liệu đã lưu thay vì báo hiệu thực tế. – Kevin
xin vui lòng xem tại đây: https://www.webrtc-experiment.com/ –
bạn có thể gửi mã xin vui lòng –