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

Improve web sockets and add autobahn test suite client #1836

merged 13 commits into from Jul 12, 2017


None yet
3 participants

s-ludwig commented Jul 11, 2017

This is a rebased version of #1534, adjusted for the changes in #1792.

Geod24 and others added some commits Jul 19, 2016

Add an application to test the client websockets implementation again…
…st autobahn

Autobahn ( is a comprehensive test suite
of the Websocket specifications.
This test won't be run by default as it requires way too much ressources
to put it into the CI, but can trivially be run manually by anyone wanting
to test the websockets implementation for conformity.
WebSocket: Deprecate default FrameOpcode parameter on send
We should not assume what the user is sending, as it varies from one application to another.
The default might as well be binary and would seem more sensible to some.
Websocket: Improve Frame.writeFrame code
Reduce the need for additional buffer, opening the way
for more memory improvements, and document what it is

Also corrects a bug with length == 65536, as it would be cast
to `ushort` which maximum size is 65535.

Finally, fixup documentation and type of FrameOpcode.
WebSocket: Improvements to Frame.readFrame
Reduce number of static buffers (3 -> 1)
Comment the internals
Only demask when the frame is masked (the previous code didn't yield incorrect data,
but needlessly iterated and assigned data to an array)
Check that the most significant bit of the 8 bytes length is 0.

@s-ludwig s-ludwig added the auto-merge label Jul 12, 2017

@dlang-bot dlang-bot merged commit 3ca4a94 into master Jul 12, 2017

4 checks passed

continuous-integration/appveyor/branch AppVeyor build succeeded
continuous-integration/appveyor/pr AppVeyor build succeeded
continuous-integration/travis-ci/pr The Travis CI build passed
continuous-integration/travis-ci/push The Travis CI build passed

@s-ludwig s-ludwig deleted the 1534_websockets branch Jul 16, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment