Add callback to obtain handshake response as client in case of handshake failure. - #238
Closed
cahlbin wants to merge 6 commits into
Closed
Add callback to obtain handshake response as client in case of handshake failure.#238cahlbin wants to merge 6 commits into
cahlbin wants to merge 6 commits into
Conversation
- `writeThread = new Thread( this );` caused a circular reference so WebSocketClient and writeThread was never garbage collected. - use 2 thread instance variables instead starting writeThread as a reader, then reassigning it as a writer in it's run method.
handshake failure. E.g. if the server rejects the WebSocket upgrade request by issuing a HTTP response with 503 status code, then this HTTP response data can be obtained via WebSocketListener.onWebsocketHandshakeReceivedAsClientFailed(WebSocket, ClientHandshake, ServerHandshake)
Made WebSocketImpl.role field final. Reworked private constructors and removed logic that re-used client constructor in the server constructor, only to later re-assign the role field. Made constructors private, to enforce use of factory methods which indicate Role by method name, to avoid relying on whether the second argument is a single Draft, or a List<Draft>.
Use WebSocketImpl.getRole to avoid NullPointerException if draft has not been assigned yet (i.e. WebSocketImpl.getDraft() returns null). With this NullPointerException fixed, the code path through closeConnection will be taken and an attempt to call removeConnection is made. At that point, the connection will still be in state ReadyState.NOT_YET_CONNETED, and will never have been added to the connections collection. The appropriate action is to only attempt to remove connections from server connection collection if it has previously been added (i.e. reached ReadyState.OPEN).
Collaborator
|
This issue is solved with #572 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This provides a listener callback to obtain the server's handshake response in case it was rejected with a HTTP status code != 101.
E.g. if the server rejects the WebSocket upgrade request by issuing a
HTTP response with 503 status code, then this HTTP response data can be
obtained via
WebSocketListener.onWebsocketHandshakeReceivedAsClientFailed(WebSocket,
ClientHandshake, ServerHandshake).
If there already is any other way of obtaining the server's response including http status code, please enlighten me :) Thanks / Christoffer