Open vanlooverenkoen opened 3 years ago
Any update here? I have the same problem.
Neither CastSessionManager().endSession(sessionId)
, or session.close()
or _session?.sendMessage(CastSession.kNamespaceConnection, {'type': 'CLOSE'})
are working. I mean, they do disconnect my app from the chromecast device, but my app is still launched in the device. I want the chromecast to totally close my app and show the "nothing connected" landscape wallpapers.
Not yet :(
It probably come from the code used in the receiver app (the app running on the Chromecast).
There are events like cast.framework.system.EventType.SENDER_DISCONNECTED
https://developers.google.com/cast/docs/reference/web_receiver/cast.framework.system#.EventType
Any update on this ?
Not from my side
So i've managed to disconnect correctly so it doesn't show the app :
Future<dynamic> close() async {
if (!_messageController.isClosed) {
sendMessage(kNamespaceConnection, {
'type': 'CLOSE',
});
try {
await _subscription?.cancel();
await _socket.flush();
_state = CastSessionState.closed;
notifyListeners();
} catch (_error) {
print("error closing " + _error.toString());
}
}
return _socket.close();
}
The issue i'm having now is that i can't reconnect after a disconnect. I need to hot restart. I've changed the session_manager to a session_provider with a bit more functionality if anyone is interested.
@jonathantribouharet could you provide any insight on how to disconnect and reconnect without having to force close and reopen the app ? When I try to reconnect I get a {type: CLOSE}
in the socket.listen
Sorry me neither, I don't know the protocol. When you try to connect again, do you use the same session or do you create a new one? I think you should not keep the same session.
I am creating a new one : sessionId = 'client-${Random().nextInt(99999)}';
This is how I disconnect in code:
I followed this document: https://docs.rs/crate/gcast/0.1.5/source/PROTOCOL.md
It is always transmitted on the
urn:x-cast:com.google.cast.receiver
namespace.Unhandled Exception: Bad state: StreamSink is closed