簡體   English   中英

如何在 webrtc 中的候選冰上使用 .toJSON() 是 javascript?

[英]How to use .toJSON() on an ice candidate in webrtc is javascript?

在 Javascript 中,我正在嘗試通過 websockets (json) 發送候選冰。

我從這個示例開始。

在我使用 Candidate.toJSON() 和/或 JSON.stringify() 之前,候選人看起來像這樣:

address: "192.168.1.2"
candidate: "candidate:149645548 1 udp 1685987071 192.168.1.2 50697 typ srflx raddr 192.168.8.162 rport 50697 generation 0 ufrag o8rk network-id 1 network-cost 10"
component: "rtp"
foundation: "149645548"
port: 50697
priority: 1685987071
protocol: "udp"
relatedAddress: "192.168.8.162"
relatedPort: 50697
sdpMLineIndex: 1
sdpMid: "1"
tcpType: ""
type: "srflx"
usernameFragment: "o8rk"
__proto__: RTCIceCandidate

在我使用這里推薦的.toJSON 之后,它看起來像這樣:

candidate: "candidate:149645548 1 udp 1685987071 192.168.1.2 50697 typ srflx raddr 192.168.8.162 rport 50697 generation 0 ufrag o8rk network-id 1 network-cost 10"
sdpMLineIndex: 1
sdpMid: "1"
__proto__: Object

如您所見,缺少許多屬性。 最重要的是,當我嘗試像同一個鏈接建議的那樣運行“toString()”時,該方法不存在。 當我嘗試 JSON.parse 時,我得到一個“在 position 1 的 JSON 中的意外令牌 o”

我認為問題在於它有原型還是因為它的類型? 但我似乎不能再進一步了。

任何對 jsonify 和發送它的幫助將不勝感激。

這是故意的,請參閱規范 附加屬性已編碼在候選字符串中,因此如果您在遠程端執行此操作:

new RTCIceCandidate({candidate: "candidate:149645548 1 udp 1685987071 192.168.1.2 50697 typ srflx raddr 192.168.8.162 rport 50697 generation 0 ufrag o8rk network-id 1 network-cost 10", sdpMid: 0})

屬性將被恢復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM