- fix: ensure serverToSocket handles sockets in strict sequence as they are accepted
- fix: ensure that, when one side is closed, all data received from that side has been delivered to the other side before closing the other side
- fix: stability under load
- ensure that socket.done is handled in all cases
- check a side's state before attempting to write to that side's socket
- fix: correctly handle situation where a socket has been closed but the other side is still writing to it
- feat: Add
authTimeout
property to SocketConnector. Previously this was hard-coded to 5 seconds which is a bit restrictive for slow network connections. It now defaults to 30 seconds but may be set at time of construction - feat: added
authTimeout
parameter toserverToServer
; this is provided to the SocketConnector constructor - feat: added
backlog
parameter toserverToServer
; this is provided to the ServerSocket.bind call - feat: added
backlog
parameter toserverToSocket
; this is provided to the ServerSocket.bind call - fix: reordered some code in
_destroySide
so it handles internal state before trying to destroy sockets - fix: added
catchError
blocks for everywhere we're callinghandleSingleConnection
when wrapped inunawaited
- More logging (when in verbose mode)
- feat: Enhance serverToSocket adding optional parameter
beforeJoining
which will be called before a socket pair is actually joined together. Thus, different transformers can be used for each socket pair.
- Added
multi
parameter toSocketConnector.serverToSocket
- whether to create new connections on the "B" side every time there is a new "A" side connection to the bound server port. Also addedonConnect
parameter, so that callers can be informed when every new connection is made, and can thus take whatever action they require. - feat: Added grace period so that SocketConnector doesn't close until both (a) initial timeout has expired and (b) number of established connections is zero or has dropped to zero
- Removed an unnecessary dependency
- Added support for requiring client sockets to be authenticated in some app-defined way before they will be connected to the other side
- Added support for app-defined data transformers which can be used to transform the data while sending from A to B, and vice versa. Useful for adding traffic encryption, for example.
- Refactored for readability
- Multiple breaking changes to improve API readability
- More documentation
- More tests
- Added close function to SocketConnector
- Small format error to get to 140/140 on pub.dev
- Improved network throughput of socket_connector
- Added connection timeout if only one side connects
- fix change log
- Bug fix with closing sockets.
- Ready for isolates
- Formatted with dart format 140/140 (I hope)
- Included dart docs and formatted with dart format
- Updated library name to match src
- Improved RegEx to show as much ascii as possible when using verbose option
- Initial version.