Here is a page with some graphs showing how the signaling process works. Về cơ bản, bạn đặt một số công cụ phụ của khách hàng trước tiên:
- PeerConnectionFactory; để tạo PeerConnections,
- PeerConnection; một cho mọi kết nối với một peer khác mà bạn muốn (thường là 1),
- MediaStream; để kết nối âm thanh và video từ thiết bị khách của bạn.
Sau đó, bạn tạo ra một SDP
offer
peerConnection.createOffer();
về phía người gọi và gửi nó tới callee. Callee bộ này offer
peerConnection.setRemoteDescription(insert-the-offer-here);
và tạo ra một SDP
answer
peerConnection.createAnswer();
và gửi nó lại cho người gọi. Người gọi nhận được answer
này và đặt nó.
peerConnection.setRemoteDescription(insert-the-answer-here);
Cả người gọi và callee nhận được một cuộc gọi đến
onAddStream() {...} //needs to be implemented in your code
Các callee khi của offer
gọi được thiết lập và người gọi khi của answer
callee được thiết lập. Lệnh gọi này báo hiệu sự bắt đầu của kết nối.
Bạn cũng có thể sử dụng ICE
(STUN
/TURN
) để tránh các sự cố firewall
và NAT
, nhưng điều này là tùy chọn. Mặc dù trong mã sản xuất, bạn có thể muốn thực hiện nó anyway.
Lưu ý: WebRTC của tài liệu khan hiếm và có thể thay đổi, mất tất cả mọi thứ bạn đọc về WebRTC được (ít nhất là bất cứ điều gì được viết như bây giờ) với một hạt muối ...
bạn có đề cập đến tín hiệu? – nick
Có. Tôi hiểu rằng đó là vai trò của tôi trong việc xây dựng kênh để ban đầu cung cấp phiếu mua hàng/câu trả lời cho các đồng nghiệp nhưng tôi không thể tìm thấy hướng dẫn chi tiết về cách các thư này được tạo. – mspanc
Bắt đầu từ ICE: https://tools.ietf.org/html/rfc5245 - nó cũng bao gồm những khoảnh khắc cơ bản trên SDP. Về cơ bản, bạn cần phải bắt đầu từ ICE và STUN/TURN, sau đó tiếp tục với SDP. Ở giai đoạn đó, ứng dụng của bạn có thể trao đổi với các gói SDP và chuyển giai đoạn báo hiệu. Sau đó, bạn sẽ cần thực hiện hỗ trợ giao thức DTLS cho máy khách của bạn. Và sau đó là SRTP/SCTP. – fycth