sendMessage method

Future<void> sendMessage(
  1. Message message
)

Send a message to the client

Implementation

Future<void> sendMessage(Message message) async {
  if (_isClosed) {
    return _sessionEventController.add(
      SessionEventGeneric(
        sessionId: id,
        type: SessionEventType.error,
        message: 'Session is closed',
      ),
    );
  }

  try {
    final data = _messageCodec.encode(message);
    await _connection.send(data);
  } catch (e) {
    _sessionEventController.add(
      SessionEventGeneric(
        sessionId: id,
        type: SessionEventType.error,
        message: 'Failed to send message: $e',
      ),
    );

    // If we can't send, assume connection is dead
    _closeSession(reason: 'Failed to send message: $e');
    rethrow;
  }
}