Flutter Signalr Listener在迁移到空安全稳定版本后,在第二个屏幕中未连接



在使用signaler迁移到零安全之前,聊天工作非常正常。但迁移后,它在聊天部分不起作用。

场景就像有两个屏幕,我正在使用信号机。1( 聊天列表。2( 和人聊天。

聊天列表中的监听器是完美的,但在第二个屏幕中它不起作用(我第一次安装并运行时刚刚起作用(。奇怪的问题。

一切都在过去工作。我正在使用bloc进行国家管理,并迁移到屈服排放。

一段代码类似于:

void listenOnMessageReceived(
HubConnection hubConnection,
Function(Message? chatMessageReceive) onMessageReceived,
) {
final SocketResponseCallBack chatMessageReceived =
(response) => onMessageReceived(Message.fromJson(response));
final hubMethod = HubMethod(
CHAT_RECEIVED_MESSAGE_METHOD_NAME,
SignalRHelper.toSocketFunction(
CHAT_RECEIVED_MESSAGE_METHOD_NAME, chatMessageReceived));
bool exists = listenOnHubMethod.any((method) => method.methodName == CHAT_RECEIVED_MESSAGE_METHOD_NAME);
if(exists) {
listenOnHubMethod.removeWhere((element) =>
element.methodName == CHAT_RECEIVED_MESSAGE_METHOD_NAME);
SignalRHelper(hubConnection: hubConnection).on(
hubMethod.methodName,
hubMethod.methodFunction,
);
listenOnHubMethod.add(hubMethod);
}else{
SignalRHelper(hubConnection: hubConnection).on(
hubMethod.methodName,
hubMethod.methodFunction,
);
listenOnHubMethod.add(hubMethod);
}
}

我在不同的屏幕上有两种类型的上述代码。但它只在一个屏幕上工作,而在第二个屏幕上没有收听。

这是一段信号侦听器代码:

static MethodInvocationFunc toSocketFunction(
String methodName, SocketResponseCallBack responseCallBack) {
return (arguments) {
try {
if (arguments!.isEmpty) {
throw SocketEmptyResponseException(methodName);
}
final response = arguments.first;
responseCallBack(response);
} on FormatException {
throw SocketResponseException(methodName);
}
};
}

稳定版本或其他版本的迁移是否有任何限制。每一次帮助都是值得的。非常感谢。

不要使用signalR,在IOS上,将无法在后台运行侦听器,或者当应用程序关闭时,您将错过消息。使用FCM。

最新更新