send method

Future<bool> send(
  1. WebSocketMessage message
)

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;
}