File tree Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Expand file tree Collapse file tree 1 file changed +9
-3
lines changed Original file line number Diff line number Diff line change 1
1
import "package:wampproto/messages.dart" ;
2
2
import "package:wampproto/serializers.dart" ;
3
+ import "package:wampproto/src/dealer.dart" ;
3
4
import "package:wampproto/src/exception.dart" ;
4
5
5
6
class WAMPSession {
@@ -37,7 +38,10 @@ class WAMPSession {
37
38
if (! _invocationRequests.containsKey (msg.requestID)) {
38
39
throw ArgumentError ("cannot yield for unknown invocation request" );
39
40
}
40
- _invocationRequests.remove (msg.requestID);
41
+ bool progress = msg.options[optionProgress] ?? false ;
42
+ if (! progress) {
43
+ _invocationRequests.remove (msg.requestID);
44
+ }
41
45
42
46
return _serializer.serialize (msg);
43
47
} else if (msg is Publish ) {
@@ -78,8 +82,10 @@ class WAMPSession {
78
82
if (! _callRequests.containsKey (msg.requestID)) {
79
83
throw ProtocolError ("received RESULT for invalid request ID ${msg .requestID }" );
80
84
}
81
- _callRequests.remove (msg.requestID);
82
-
85
+ bool progress = msg.details["progress" ] ?? false ;
86
+ if (! progress) {
87
+ _callRequests.remove (msg.requestID);
88
+ }
83
89
return msg;
84
90
} else if (msg is Registered ) {
85
91
if (! _registerRequests.containsKey (msg.requestID)) {
You can’t perform that action at this time.
0 commit comments