Skip to content

Commit afa33e0

Browse files
authored
Merge pull request #23 from atsign-foundation/fix-socket-closed-while-other-side-still-writing
fix: socket closed while other side still writing
2 parents 4128bcf + 2204d47 commit afa33e0

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

lib/src/socket_connector.dart

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,17 +141,18 @@ class SocketConnector {
141141
StreamController<Uint8List> sc = StreamController<Uint8List>();
142142
side.farSide!.sink = sc;
143143
Stream<List<int>> transformed = side.transformer!(sc.stream);
144-
transformed.listen((event) {
144+
transformed.listen((event) async {
145145
try {
146146
side.farSide!.socket.add(event);
147+
await side.farSide!.socket.flush();
147148
} catch (e) {
148149
_log('Failed to write to side ${side.farSide!.name} - closing',
149150
force: true);
150151
_destroySide(side.farSide!);
151152
}
152153
});
153154
}
154-
side.stream.listen((Uint8List data) {
155+
side.stream.listen((Uint8List data) async {
155156
if (logTraffic) {
156157
final message = String.fromCharCodes(data);
157158
if (side.isSideA) {
@@ -164,6 +165,7 @@ class SocketConnector {
164165
}
165166
try {
166167
side.farSide!.sink.add(data);
168+
await side.farSide!.socket.flush();
167169
} catch (e) {
168170
_log('Failed to write to side ${side.farSide!.name} - closing',
169171
force: true);

0 commit comments

Comments
 (0)