Standardize on ArrayBuffer as the type of WebRTC messages
- The proxy receives binary messages over an RTCDataChannel without specifying what the type of those messages should be. Some debugging code is written to handle the type ArrayBuffer, but when I tried it the type was actually Blob, which crashed the debug code.
- Snowflake uses exclusively binary WebRTC data, but the test code uses strings as message contents rather than one of the binary data types.
This wasn't a huge problem, because strings
Blobs are all valid to pass to
WebSocket.send. The only other thing we do other than
send them is take their length for the purpose of rate limiting, and that is broken.
This branch sets binaryType = "arraybuffer" so that we don't get unexpected
Blob objects. It then makes changes to the test and rate-limiting code to standardize on the ArrayBuffer interface everywhere.