@@ -249,22 +249,29 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
249
249
}
250
250
251
251
public _receiveMessage ( message : Message ) : void {
252
- if ( this . timeReceived . has ( message . messageId ) ) {
252
+ if (
253
+ message . content &&
254
+ message . content . length > 0 &&
255
+ this . timeReceived . has ( message . messageId )
256
+ ) {
253
257
// Received a duplicate message
254
258
return ;
255
259
}
256
260
257
261
if ( ! message . lamportTimestamp ) {
258
262
// Messages with no timestamp are ephemeral messages and should be delivered immediately
263
+ this . deliverMessage ( message ) ;
264
+ return ;
265
+ }
266
+ if ( message . content ?. length === 0 ) {
259
267
this . safeDispatchEvent ( MessageChannelEvent . SyncReceived , {
260
268
detail : message
261
269
} ) ;
262
- this . deliverMessage ( message ) ;
263
- return ;
270
+ } else {
271
+ this . safeDispatchEvent ( MessageChannelEvent . MessageReceived , {
272
+ detail : message
273
+ } ) ;
264
274
}
265
- this . safeDispatchEvent ( MessageChannelEvent . MessageReceived , {
266
- detail : message
267
- } ) ;
268
275
// review ack status
269
276
this . reviewAckStatus ( message ) ;
270
277
// add to bloom filter (skip for messages with empty content)
@@ -347,11 +354,11 @@ export class MessageChannel extends TypedEventEmitter<MessageChannelEvents> {
347
354
) ;
348
355
// Update the incoming buffer to only include messages with no missing dependencies
349
356
this . incomingBuffer = buffer ;
350
- if ( missing . size > 0 ) {
351
- this . safeDispatchEvent ( MessageChannelEvent . MissedMessages , {
352
- detail : Array . from ( missing )
353
- } ) ;
354
- }
357
+
358
+ this . safeDispatchEvent ( MessageChannelEvent . MissedMessages , {
359
+ detail : Array . from ( missing )
360
+ } ) ;
361
+
355
362
return Array . from ( missing ) ;
356
363
}
357
364
0 commit comments