send method

  1. @override
Future<void> send(
  1. Map<String, dynamic> message
)
override

Send a message to the server

Implementation

@override
Future<void> send(Map<String, dynamic> message) async {
  _logger.info('WebSocket: Sending message: $message');
  _logger.info(
      'WebSocket: Connected state: $connected, Channel: ${_channel != null}');

  if (!connected || _channel == null) {
    _logger.severe('WebSocket: Cannot send message - not connected');
    throw FayeError.network('Not connected');
  }

  try {
    final jsonMessage = jsonEncode(message);
    _logger.info('WebSocket: Sending JSON: $jsonMessage');
    _channel!.sink.add(jsonMessage);
    recordMessageSent(message);
    _logger.info('WebSocket: Message sent successfully');
  } catch (e) {
    _logger.severe('WebSocket: Failed to send message: $e');
    emitError(FayeError.network('Failed to send message: $e'));
    rethrow;
  }
}