dequeue method
Removes and returns the next message from the queue. Returns null if the queue is empty.
Implementation
WebSocketMessage? dequeue() {
if (_queue.isEmpty) {
return null;
}
final message = _queue.removeAt(0);
// Remove message ID from deduplication set
if (enableDeduplication) {
_messageIds.remove(message.id);
}
return message;
}