send method
Sends a message through the WebSocket connection. If the connection is not available, the message is queued.
Implementation
Future<bool> send(WebSocketMessage message) async {
if (isConnected) {
try {
final success = await _connection!.send(message);
if (success) {
_eventController.add(WebSocketManagerEvent.messageSent(message));
return true;
}
} catch (e) {
_eventController
.add(WebSocketManagerEvent.error('Failed to send message: $e'));
}
}
// Queue message if connection is not available
if (config.enableMessageQueue) {
final queued = _messageQueue.enqueue(message);
if (queued) {
_eventController.add(WebSocketManagerEvent.messageQueued(message));
return true;
} else {
_eventController
.add(WebSocketManagerEvent.error('Message queue is full'));
return false;
}
}
return false;
}