невозможно использовать https-соединение в serverpod флаттера
Мы настроили клиентское соединение с сервером с помощью serverpod. мы настраиваем SSL на сервере и можем использовать соединения https:// при выполнении вызовов отдыха на сервер, но для нашего соединения через веб-сокет мы не можем переключить его на https://
Когда мы это делаем, мы получаем сообщение об ошибке, в котором говорится, что клиент не может подключиться к серверу, но ошибка говорит о том, что он все еще пытается использовать HTTP:
I/flutter ( 6431): SocketException: HTTP connection timed out after 0:00:20.000000, host: <ip>, port: 8080
I/flutter ( 6431): recreating client...
Вот наш объект SubscriptionService, который устанавливает соединение с серверной частью, называемойclient
:
import 'dart:async';
import 'package:serverpod_client/serverpod_client.dart';
class SubscriptionService {
static const String url = 'http://<ip>:8080'; // works
//static const String url = 'https://<ip>:8080'; // does not work
final server.Client client;
late server.ConnectivityMonitor monitor;
bool isConnected = false;
late StreamingConnectionHandler connectionHandler;
List<StreamSubscription<dynamic>> listeners = <StreamSubscription<dynamic>>[];
SubscriptionService() : client = server.Client('$url/');
Future<void> setupClient(server.ConnectivityMonitor givenMonitor) async {
monitor = givenMonitor;
client.connectivityMonitor = givenMonitor;
connectionHandler = StreamingConnectionHandler(
client: client,
listener: (StreamingConnectionHandlerState connectionState) {
print('connection state: ${connectionState.status.name}');
},
);
print('connecting!');
try {
connectionHandler.connect();
} catch (e) {
print(e);
}
await setupListeners();
}
...
}
Документация по Serverpod, похоже, изменилась с тех пор, как мы реализовали это решение, я думаю, это ему соответствует: https://docs.serverpod.dev/concepts/streams , но это описываетWebSockets
где, уточнимStreamingConnectionHandler
так что я не уверен, что это то же самое.