-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement WebRTC Data Channel. #1238
Implement WebRTC Data Channel. #1238
Conversation
The following links are available: build (windows-latest, full) |
The following links are available: build (ubuntu-18.04, full)
build (macOS-latest, full) build (windows-latest, full) |
…annel # Conflicts: # domain-server/src/DomainServer.h
The following links are available: build (macOS-latest, full) build (ubuntu-18.04, full)
build (ubuntu-18.04, android) |
The following links are available: build (macOS-latest, full) build (ubuntu-18.04, full)
build (ubuntu-18.04, android)
build (windows-latest, full) |
The following links are available:
build (macOS-latest, client) build (macOS-latest, full) build (ubuntu-18.04, android)
build (windows-latest, full) |
The following links are available: build (ubuntu-18.04, full)
build (macOS-latest, full) build (windows-latest, full) build (ubuntu-18.04, android) |
The following links are available: build (ubuntu-18.04, full)
|
#ifdef WEBRTC_DEBUG | ||
qCDebug(networking_webrtc) << "WDCConnection::sendDataMessage()"; | ||
#endif | ||
const int MAX_WEBRTC_BUFFER_SIZE = 16 * 1024 * 1024; // 16MB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Constant probably should be somewhere else, perhaps at the top of the file?
Why 16M? Is this a protocol issue, or just a sane memory limit?
What kind of data will be sent? Textures may exceed 16M quite easily.
There should be some sort of log message here, too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a WebRTC protocol limit in the WebRTC Send()
method. This is just how much data can be buffered to send. Ultimately, it's called via Socket::writeDatagram()
- in PR1259 - and UDP sockets can similarly fail to write date. The Vircadia protocol handles this situation (dropping unreliable packets and resending reliable packets). And large data items are chopped up into multi-packet messages with the packets sent individually by this method (or similar UDP method).
|
||
#if defined(Q_OS_MAC) | ||
# define WEBRTC_AUDIO 1 | ||
# define WEBRTC_POSIX 1 | ||
# define WEBRTC_LEGACY 1 | ||
#elif defined(Q_OS_WIN) | ||
# define WEBRTC_AUDIO 1 | ||
# define WEBRTC_DATA_CHANNEL 1 | ||
# define WEBRTC_DATA_CHANNELS 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps the constants should be named something like ENABLE_WEBRTC_DATA_CHANNELS
instead, for clarity?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the "topic" of the define ("WEBRTC") coming first makes it easier to distinguish these defines from other defines and group related ones together.
The following links are available:
build (macOS-latest, client) build (macOS-latest, full) build (ubuntu-18.04, android)
build (windows-latest, full) |
Latest changes should be QA'd using Web SDK PR vircadia/vircadia-web-sdk#10 |
Le Wild Kalila has tested this again with vircadia/vircadia-web-sdk PR #10 by running a basic test suite. |
Implements the WebRTC data channel.
This PR is targeted at the
webapp
feature branch, where Web app-related changes will be accumulated and tested before being periodically merged into master (and vice-versa).It builds upon PR #1221 which needs to be merged first. The changes in this PR start in commit
6c37628
.QA:
See the Vircadia-Web-SDK PR: vircadia/vircadia-web-sdk#6See the Vircadia-Web-SDK PR: vircadia/vircadia-web-sdk#10Merge sequence:
Vircadia-Web PR: Update submodule vircadia-web-sdk to latest master to support WebRTC data channel feature. vircadia-web#13
master
branch.