easywsclient icon indicating copy to clipboard operation
easywsclient copied to clipboard

Close sockets with _RealWebSocket destructor

Open james-richey-gv opened this issue 3 years ago • 0 comments

A new helper method, terminateConnection(), is added to ensure all the places where sockets are closed cause the socket file descriptor to become invalidated and the client to be put in the correct state.

A destructor is added to call terminateConnection() ensuring resources are freed if the WebSocket object is destroyed.

Finally, private copy constructor and copy assignment operator are added per the "Rule of Three" ensuring only one instance manages the socket.

This should address issue #71: Websocket::close() doesn't disconnect correctly. Calling WebSocket::close() still requests a clean disconnect; however, the socket is guaranteed to be closed when the WebSocket destructor is run.

james-richey-gv avatar Jun 14 '21 23:06 james-richey-gv