RTCPeerConnection

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

* Some parts of this feature may have varying levels of support.

Giao diện RTCPeerConnection biểu diễn một kết nối WebRTC giữa máy tính cục bộ và một máy ngang hàng từ xa. Giao diện này cung cấp các phương thức để kết nối với máy ngang hàng từ xa, duy trì và theo dõi kết nối, rồi đóng kết nối khi không còn cần thiết.

EventTarget RTCPeerConnection

Hàm khởi tạo

RTCPeerConnection()

Trả về một RTCPeerConnection mới, đại diện cho một kết nối giữa thiết bị cục bộ và một máy ngang hàng từ xa.

Thuộc tính thể hiện

Cũng kế thừa các thuộc tính từ EventTarget.

canTrickleIceCandidates Read only

Trả về một giá trị boolean cho biết máy ngang hàng từ xa có thể chấp nhận ICE candidate được gửi dần hay không.

connectionState Read only

Cho biết trạng thái hiện tại của kết nối ngang hàng bằng cách trả về một trong các chuỗi: new, connecting, connected, disconnected, failed hoặc closed.

currentLocalDescription Read only

Trả về một đối tượng RTCSessionDescription mô tả đầu cục bộ của kết nối như lần thương lượng thành công gần nhất kể từ khi RTCPeerConnection này hoàn tất việc thương lượng và kết nối với máy ngang hàng từ xa. Thuộc tính này cũng bao gồm danh sách bất kỳ ICE candidate nào đã được bộ máy ICE tạo ra kể từ khi offer hoặc answer được mô tả được khởi tạo lần đầu.

currentRemoteDescription Read only

Trả về một đối tượng RTCSessionDescription mô tả đầu từ xa của kết nối như lần thương lượng thành công gần nhất kể từ khi RTCPeerConnection này hoàn tất việc thương lượng và kết nối với máy ngang hàng từ xa. Thuộc tính này cũng bao gồm danh sách bất kỳ ICE candidate nào đã được bộ máy ICE tạo ra kể từ khi offer hoặc answer được mô tả được khởi tạo lần đầu.

iceConnectionState Read only

Trả về một chuỗi cho biết trạng thái của bộ máy ICE gắn với RTCPeerConnection này. Giá trị có thể là một trong các trạng thái sau: new, checking, connected, completed, failed, disconnected hoặc closed.

iceGatheringState Read only

Trả về một chuỗi mô tả trạng thái thu thập ICE của kết nối. Điều này cho phép bạn phát hiện, chẳng hạn, khi quá trình thu thập ICE candidate đã hoàn tất. Các giá trị có thể là: new, gathering hoặc complete.

localDescription Read only

Trả về một đối tượng RTCSessionDescription mô tả phiên cho đầu cục bộ của kết nối. Nếu chưa được đặt, thuộc tính này trả về null.

peerIdentity Read only

Trả về một Promise được giải quyết thành một RTCIdentityAssertion chứa một chuỗi định danh máy ngang hàng từ xa. Khi promise này được giải quyết thành công, danh tính thu được sẽ là danh tính máy ngang hàng đích và sẽ không thay đổi trong suốt thời gian kết nối.

pendingLocalDescription Read only

Trả về một đối tượng RTCSessionDescription mô tả một thay đổi cấu hình đang chờ xử lý cho đầu cục bộ của kết nối. Nó không mô tả trạng thái hiện tại của kết nối, mà là trạng thái có thể xuất hiện trong tương lai gần.

pendingRemoteDescription Read only

Trả về một đối tượng RTCSessionDescription mô tả một thay đổi cấu hình đang chờ xử lý cho đầu từ xa của kết nối. Nó không mô tả trạng thái hiện tại của kết nối, mà là trạng thái có thể xuất hiện trong tương lai gần.

remoteDescription Read only

Trả về một đối tượng RTCSessionDescription mô tả phiên, bao gồm thông tin cấu hình và phương tiện, cho đầu từ xa của kết nối. Nếu chưa được đặt, giá trị trả về là null.

sctp Read only

Trả về một đối tượng RTCSctpTransport mô tả lớp truyền tải SCTP mà qua đó dữ liệu SCTP được gửi và nhận. Nếu SCTP chưa được thương lượng, giá trị này là null.

signalingState Read only

Trả về một chuỗi mô tả trạng thái của quá trình báo hiệu ở đầu cục bộ của kết nối trong khi đang kết nối hoặc kết nối lại với một máy ngang hàng khác. Giá trị có thể là một trong các trạng thái sau: stable, have-local-offer, have-remote-offer, have-local-pranswer, have-remote-pranswer hoặc closed.

Phương thức tĩnh

RTCPeerConnection.generateCertificate()

Tạo một chứng chỉ X.509 và khóa riêng tương ứng của nó, trả về một Promise được giải quyết thành RTCCertificate mới khi quá trình tạo hoàn tất.

Phương thức thể hiện

Cũng kế thừa các phương thức từ EventTarget.

addIceCandidate()

Thêm một candidate từ xa mới vào remoteDescription của RTCPeerConnection, mô tả trạng thái của đầu từ xa của kết nối.

addTrack()

Thêm một MediaStreamTrack mới vào tập các track sẽ được truyền tới máy ngang hàng còn lại.

addTransceiver()

Tạo một RTCRtpTransceiver mới và thêm nó vào tập các transceiver gắn với kết nối. Mỗi transceiver biểu diễn một luồng hai chiều, với cả một RTCRtpSender và một RTCRtpReceiver gắn với nó.

close()

Đóng kết nối ngang hàng hiện tại.

createAnswer()

Bắt đầu tạo một câu trả lời SDP cho một lời mời nhận được từ một máy ngang hàng từ xa trong quá trình thương lượng offer/answer của một kết nối WebRTC. Câu trả lời chứa thông tin về bất kỳ phương tiện nào đã được gắn vào phiên, các codec và tùy chọn được trình duyệt hỗ trợ, cùng với bất kỳ ICE candidate nào đã được thu thập.

createDataChannel()

Bắt đầu tạo một kênh mới được liên kết với máy ngang hàng từ xa, qua đó có thể truyền bất kỳ loại dữ liệu nào. Điều này hữu ích cho nội dung kênh phụ, chẳng hạn như hình ảnh, truyền tệp, chat văn bản, gói cập nhật trò chơi, v.v.

createOffer()

Bắt đầu tạo một lời mời SDP nhằm khởi động một kết nối WebRTC mới tới máy ngang hàng từ xa. Lời mời SDP bao gồm thông tin về bất kỳ đối tượng MediaStreamTrack nào đã được gắn vào phiên WebRTC, codec và tùy chọn được trình duyệt hỗ trợ, cũng như mọi candidate đã được bộ máy ICE thu thập, với mục đích được gửi qua kênh báo hiệu tới một máy ngang hàng tiềm năng để yêu cầu kết nối hoặc cập nhật cấu hình của kết nối hiện có.

getConfiguration()

Trả về một đối tượng cho biết cấu hình hiện tại của kết nối.

getIdentityAssertion()

Bắt đầu thu thập một chứng thực danh tính và trả về một Promise được giải quyết thành chuỗi mã hóa chứng thực danh tính. Điều này chỉ có tác dụng nếu signalingState không phải là closed.

getReceivers()

Trả về một mảng các đối tượng RTCRtpReceiver, mỗi đối tượng biểu diễn một bộ nhận RTP.

getSenders()

Trả về một mảng các đối tượng RTCRtpSender, mỗi đối tượng biểu diễn bộ gửi RTP chịu trách nhiệm truyền dữ liệu của một track.

getStats()

Trả về một Promise được giải quyết với dữ liệu cung cấp thống kê về toàn bộ kết nối hoặc về MediaStreamTrack được chỉ định.

getTransceivers()

Trả về danh sách tất cả các đối tượng RTCRtpTransceiver đang được dùng để gửi và nhận dữ liệu trên kết nối.

removeTrack()

Yêu cầu đầu cục bộ của kết nối ngừng gửi phương tiện từ track được chỉ định, mà không thực sự xóa RTCRtpSender tương ứng khỏi danh sách sender như được báo cáo bởi getSenders(). Nếu track đã dừng, hoặc không có trong danh sách sender của kết nối, phương thức này không có tác dụng.

restartIce()

Cho phép dễ dàng yêu cầu thực hiện lại việc thu thập ICE candidate ở cả hai đầu của kết nối. Điều này đơn giản hóa quá trình bằng cách cho phép cùng một phương thức được dùng bởi cả bên gọi lẫn bên nhận để kích hoạt khởi động lại ICE.

setConfiguration()

Đặt cấu hình hiện tại của kết nối dựa trên các giá trị được bao gồm trong đối tượng chỉ định. Điều này cho phép bạn thay đổi các máy chủ ICE được kết nối sử dụng và chính sách truyền tải nào sẽ được dùng.

setIdentityProvider()

Đặt Nhà cung cấp danh tính (IdP) theo bộ ba được truyền vào tham số: tên của nó, giao thức được dùng để giao tiếp với nó và tên người dùng. Giao thức và tên người dùng là tùy chọn.

setLocalDescription()

Thay đổi mô tả cục bộ gắn với kết nối. Mô tả này chỉ định các thuộc tính của đầu cục bộ của kết nối, bao gồm định dạng media. Nó trả về một Promise được thực thi khi mô tả đã được thay đổi, theo cách bất đồng bộ.

setRemoteDescription()

Đặt mô tả phiên được chỉ định làm offer hoặc answer hiện tại của máy ngang hàng từ xa. Mô tả này chỉ định các thuộc tính của đầu từ xa của kết nối, bao gồm định dạng media. Nó trả về một Promise được thực thi khi mô tả đã được thay đổi, theo cách bất đồng bộ.

Phương thức lỗi thời

addStream() Deprecated Non-standard

Thêm một MediaStream làm nguồn cục bộ cho âm thanh hoặc video. Thay vì dùng phương thức lỗi thời này, bạn nên dùng addTrack() một lần cho mỗi track bạn muốn gửi đến máy ngang hàng từ xa.

createDTMFSender() Deprecated Non-standard

Tạo một RTCDTMFSender mới, gắn với một MediaStreamTrack cụ thể, để có thể gửi tín hiệu điện thoại DTMF qua kết nối.

removeStream() Deprecated Non-standard

Xóa một MediaStream làm nguồn cục bộ cho âm thanh hoặc video. Vì phương thức này đã lỗi thời, bạn nên dùng removeTrack().

Sự kiện

Lắng nghe các sự kiện này bằng addEventListener() hoặc bằng cách gán trình lắng nghe sự kiện cho thuộc tính oneventname của giao diện này.

connectionstatechange

Được gửi khi trạng thái kết nối tổng thể của RTCPeerConnection thay đổi.

datachannel

Được gửi khi máy ngang hàng từ xa thêm một RTCDataChannel vào kết nối.

icecandidate

Được gửi để yêu cầu candidate được chỉ định được truyền tới máy ngang hàng từ xa.

icecandidateerror

Được gửi tới kết nối nếu xảy ra lỗi trong quá trình thu thập ICE candidate. Sự kiện này mô tả lỗi.

iceconnectionstatechange

Được gửi khi trạng thái của kết nối ICE thay đổi, chẳng hạn khi nó bị ngắt.

icegatheringstatechange

Được gửi khi trạng thái thu thập của lớp ICE, được phản ánh bởi iceGatheringState, thay đổi. Điều này cho biết quá trình thương lượng ICE chưa bắt đầu (new), đã bắt đầu thu thập candidate (gathering) hay đã hoàn tất (complete).

negotiationneeded

Được gửi khi cần thực hiện thương lượng hoặc thương lượng lại kết nối ICE; việc này có thể xảy ra khi mở kết nối lần đầu cũng như khi cần thích ứng với các điều kiện mạng thay đổi. Bên nhận nên phản hồi bằng cách tạo một offer và gửi nó đến máy ngang hàng còn lại.

signalingstatechange

Được gửi khi trạng thái báo hiệu của kết nối ICE thay đổi.

track

Được gửi sau khi một track mới được thêm vào một trong các thể hiện RTCRtpReceiver tạo nên kết nối.

Sự kiện lỗi thời

addstream Deprecated Non-standard

Được gửi khi một MediaStream mới được thêm vào kết nối. Thay vì lắng nghe sự kiện lỗi thời này, bạn nên lắng nghe các sự kiện track; một sự kiện được gửi cho mỗi MediaStreamTrack được thêm vào kết nối.

removestream Deprecated Non-standard

Được gửi khi một MediaStream bị xóa khỏi kết nối. Thay vì lắng nghe sự kiện lỗi thời này, bạn nên lắng nghe các sự kiện removetrack trên từng luồng.

Thông số kỹ thuật

Specification
WebRTC: Real-Time Communication in Browsers
# interface-definition

Tương thích trình duyệt

Xem thêm