Tôi có ứng dụng webrtc, nó hoạt động tốt, nhưng với mục đích thử nghiệm, tôi cần kiểm tra xem máy chủ TURN của tôi có hoạt động hay không, nhưng vì cả hai thiết bị thử nghiệm đều nằm trong cùng một mạng, tôi không thể kiểm tra, nghĩ mã dưới đây sẽ hạn chế các ứng cử viên để chỉ những người sử dụng máy chủ lần lượt,WebRTC: buộc các đồng nghiệp sử dụng máy chủ TURN
function onIceCandidate(event, targetSessionID, targetUserName) {
if (event.candidate) {
var candidate = event.candidate.candidate;
if(candidate.indexOf("relay")<0){ // if no relay address is found, assuming it means no TURN server
return;
}
sendMessage(candidate); // using socket.io to send to the otherside
...
nhưng tôi nhận thấy rằng (với nhiều thất vọng), điều này không làm việc, bởi vì khi ngang hàng đang tạo ra mô tả câu trả lời,
....
a=candidate:0 1 UDP 2128609535 13.198.98.221 58779 typ host
a=candidate:0 2 UDP 2128609534 13.198.98.221 58780 typ host
....
điều này có nghĩa là thông báo là trực tiếp và không thông qua TUR N máy chủ, tôi có chính xác trong giả định này? Bây giờ, làm cách nào để buộc webrtc sử dụng máy chủ TURN?
Có, các ứng viên sẽ hiển thị trong cuộc gọi lại đó, nhưng sau đó chúng cũng được thêm vào bất kỳ SDP nào được tạo sau đó. Bạn cũng sẽ phải xóa các ứng viên không mong muốn khỏi các SDP. –
@BenjaminTrent Tôi nhìn vào SDP trong khi cung cấp và trả lời, vì vậy cách duy nhất tôi có thể ngăn chặn một kết nối p2p trực tiếp là thao tác thủ công chuỗi cung cấp và trả lời (nhận từ '' 'createOffer''' và' '' createAnswer'' ')? – mido
Tôi tin như vậy, nếu bạn loại bỏ các ứng cử viên băng không mong muốn trước khi thiết lập chúng tại địa phương và gửi chúng ra cho các peer, mà NÊN làm việc. –