WebRTC refactor. Data channels, STUN/TURN support.

A big refactor to the WebRTC module. API is now considered quite stable.

Highlights:

- Renamed `WebRTCPeer` to `WebRTCPeerConnection`.
- `WebRTCPeerConnection` no longer act as `PacketPeer`, it only handle the connection itself (a bit like `TCP_Server`)
- Added new `WebRTCDataChannel` class which inherits from `PacketPeer` to handle data transfer.
- Add `WebRTCPeerConnection.initialize` method to create a new connection with the desired configuration provided as dictionary ([see MDN docs](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection#RTCConfiguration_dictionary)).
- Add `WebRTCPeerConnection.create_data_channel` method to create a data channel for the given connection. The connection must be in `STATE_NEW` as specified by the standard ([see MDN docs for options](https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/createDataChannel#RTCDataChannelInit_dictionary)).
- Add a `data_channel_received` signal to `WebRTCPeerConnection` for in-band (not negotiated) channels.
- Renamed `WebRTCPeerConnection` `offer_created` signal to `session_description_created`.
- Renamed `WebRTCPeerConnection` `new_ice_candidate` signal to `ice_candidate_created`
This commit is contained in:
Fabio Alessandrelli 2019-05-11 01:46:27 +02:00
parent eded8d52e3
commit 729b1e9941
25 changed files with 1560 additions and 666 deletions

View file

@ -6436,11 +6436,26 @@
"next": null,
"api": [
{
"name": "godot_net_bind_webrtc_peer",
"name": "godot_net_set_webrtc_library",
"return_type": "godot_error",
"arguments": [
["const godot_net_webrtc_library *", "p_library"]
]
},
{
"name": "godot_net_bind_webrtc_peer_connection",
"return_type": "void",
"arguments": [
["godot_object *", "p_obj"],
["const godot_net_webrtc_peer *", "p_interface"]
["const godot_net_webrtc_peer_connection *", "p_interface"]
]
},
{
"name": "godot_net_bind_webrtc_data_channel",
"return_type": "void",
"arguments": [
["godot_object *", "p_obj"],
["const godot_net_webrtc_data_channel *", "p_interface"]
]
}
]