connectToRemoteAndInitialize function
Connects to a remote server over a two-way communication channel.
The other end of the channel
must be attached to a drift server with
DriftServer.serve for this setup to work.
If it is known that only a single client will connect to this database
server, singleClientMode
can be enabled.
When enabled, shutdown is implicitly called when the database connection
is closed. This may make it easier to dispose the remote isolate or server.
Also, update notifications for table updates don't have to be sent which
reduces load on the connection.
If serialize
is true, drift will only send bool, int, double,
Uint8List, String or List's thereof over the channel. Otherwise,
the message may be any Dart object.
The value of serialize
for connectToRemoteAndInitialize must be the same
value passed to DriftServer.serve.
The optional debugLog
can be enabled to print incoming and outgoing
messages.
Implementation
Future<DatabaseConnection> connectToRemoteAndInitialize(
StreamChannel<Object?> channel, {
bool debugLog = false,
bool serialize = true,
bool singleClientMode = false,
}) async {
final client = DriftClient(channel, debugLog, serialize, singleClientMode);
await client.serverInfo;
return client.connection;
}