Skip to content

Commit 2857299

Browse files
Merge pull request #19 from muzzammilshahid/adapt-publish-handling
Adapt publish message handling based on wampproto lib
2 parents c6b7574 + 388fd89 commit 2857299

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

lib/src/realm.dart

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,25 +39,32 @@ class Realm {
3939
break;
4040

4141
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+
});
4652

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);
5057
}
5158

5259
break;
5360

5461
case Subscribe.id:
5562
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");
5966
}
60-
MessageWithRecipient recipient = recipients[0];
67+
6168
var client = _clients[recipient.recipient];
6269
client?.sendMessage(recipient.message);
6370
break;

0 commit comments

Comments
 (0)