sendMessage method
Send a user message to the remote session via HTTP POST.
Returns true if the server acknowledged the message successfully.
Implementation
Future<bool> sendMessage(
RemoteMessageContent content, {
String? uuid,
}) async {
developer.log(
'Sending message to session ${_config.sessionId}',
name: 'RemoteSessionManager',
);
try {
final client = HttpClient();
// POST to the teleport API endpoint.
final uri = Uri.parse(
'https://api.anthropic.com/v1/sessions/${_config.sessionId}/events',
);
final request = await client.postUrl(uri);
request.headers.set(
'Authorization',
'Bearer ${_config.getAccessToken()}',
);
request.headers.set('Content-Type', 'application/json');
request.headers.set('anthropic-version', '2023-06-01');
final body = <String, dynamic>{'content': content};
if (uuid != null) body['uuid'] = uuid;
request.add(utf8.encode(jsonEncode(body)));
final response = await request.close();
client.close(force: false);
if (response.statusCode >= 200 && response.statusCode < 300) {
return true;
}
developer.log(
'Failed to send message: HTTP ${response.statusCode}',
name: 'RemoteSessionManager',
);
return false;
} catch (e) {
developer.log(
'Failed to send message: $e',
name: 'RemoteSessionManager',
);
return false;
}
}