@@ -39,25 +39,32 @@ class Realm {
39
39
break ;
40
40
41
41
case Publish .id:
42
- List <MessageWithRecipient >? recipients = _broker.receiveMessage (sessionID, msg);
43
- if (recipients == null ) {
44
- return ;
45
- }
42
+ var publishMsg = msg as Publish ;
43
+ var publication = _broker.receivePublish (sessionID, publishMsg);
44
+
45
+ publication.recipients? .forEach ((recipient) {
46
+ var client = _clients[recipient];
47
+ var event = publication.event;
48
+ if (event != null ) {
49
+ client? .sendMessage (event);
50
+ }
51
+ });
46
52
47
- for (final recipient in recipients) {
48
- var client = _clients[recipient.recipient];
49
- client? .sendMessage (recipient.message);
53
+ var ack = publication.ack;
54
+ if (ack != null ) {
55
+ var client = _clients[ack.recipient];
56
+ client? .sendMessage (ack.message);
50
57
}
51
58
52
59
break ;
53
60
54
61
case Subscribe .id:
55
62
case UnSubscribe .id:
56
- List < MessageWithRecipient > ? recipients = _broker.receiveMessage (sessionID, msg);
57
- if (recipients == null ) {
58
- throw Exception ("recipients null" );
63
+ MessageWithRecipient ? recipient = _broker.receiveMessage (sessionID, msg);
64
+ if (recipient == null ) {
65
+ throw Exception ("recipient null" );
59
66
}
60
- MessageWithRecipient recipient = recipients[ 0 ];
67
+
61
68
var client = _clients[recipient.recipient];
62
69
client? .sendMessage (recipient.message);
63
70
break ;
0 commit comments