2015-11-28 15 views
5

Tôi cần phát triển một mạng ngang hàng WebRTC tùy chỉnh (tôi cần thiết lập kết nối âm thanh hoặc/và dữ liệu giữa trình duyệt web và không phải trình duyệt). Tuy nhiên, tôi cố gắng tìm ra một mô tả rõ ràng, phù hợp về giai đoạn bắt tay.Giao diện công việc ngang hàng của WebRTC như thế nào?

Câu trả lời cho các câu hỏi như How to create data channel in WebRTC peer connection? không hoàn toàn hữu ích vì chúng không quá chi tiết. Cụ thể, họ không nói gì về nội dung SDP.

Có ai có thể giải thích điều này hoặc đề xuất bất kỳ tài liệu hay nào không?

+0

bạn có đề cập đến tín hiệu? – nick

+0

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

+1

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

Trả lời

8

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 SDPoffer

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 SDPanswer

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ố firewallNAT, 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 ...

Các vấn đề liên quan