send method

Future<bool> send(
  1. WebSocketMessage message
)

Sends a message through the WebSocket connection.

Implementation

Future<bool> send(WebSocketMessage message) async {
  if (!isConnected) {
    throw WebSocketException.messageSendFailed('Connection not established');
  }

  try {
    if (message.isText) {
      _channel!.sink.add(message.data as String);
    } else if (message.isBinary) {
      _channel!.sink.add(message.data as List<int>);
    } else if (message.isJson) {
      _channel!.sink.add(message.data.toString());
    } else {
      _channel!.sink.add(message.data.toString());
    }

    _lastMessageTime = DateTime.now();
    _eventController.add(WebSocketEvent.messageSent(message));

    return true;
  } catch (e) {
    throw WebSocketException.messageSendFailed('Failed to send message: $e');
  }
}