sendMessage method

  1. @override
Future<void> sendMessage(
  1. WebSocketMessage message
)
override

Sends a message through the WebSocket

Implementation

@override
Future<void> sendMessage(WebSocketMessage message) async {
  if (_channel == null || _currentState != WebSocketState.connected) {
    throw StateError('WebSocket is not connected');
  }

  try {
    dynamic dataToSend = message.data;

    // Handle JSON serialization
    if (message.type == 'json' && message.data is Map) {
      dataToSend = jsonEncode(message.data);
    }

    _channel!.sink.add(dataToSend);
  } catch (error) {
    _errorController.add(error);
    rethrow;
  }
}