Socket io отключается, когда приложение находится в фоновом режиме (ионный конденсатор ios)IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Socket io отключается, когда приложение находится в фоновом режиме (ионный конденсатор ios)

Сообщение Anonymous »

у нас есть клиент Socket.io для чатов, а также для получения некоторых данных,
поэтому проблема в том, что когда мы переводим приложение в фоновый режим в IOS, через 30 секунд оно отключается, да, оно подключается снова, когда вы поместите приложение на передний план, но мне нужно, чтобы оно оставалось на связи хотя бы 5 минут.
Пробовал этот код также из чата.
import UIKit
import Capacitor
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?
var backgroundTask: UIBackgroundTaskIdentifier = .invalid
var timer: Timer?

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
FirebaseApp.configure()
return true
}

func keepSocketAliveForTenMinutes() {
// Start a background task to extend runtime
backgroundTask = UIApplication.shared.beginBackgroundTask(withName: "KeepSocketAlive") {
// End the task if time expires
UIApplication.shared.endBackgroundTask(self.backgroundTask)
self.backgroundTask = .invalid
}

// Start a timer to keep the socket alive
timer = Timer.scheduledTimer(withTimeInterval: 10 * 60, repeats: false) { [weak self] _ in
self?.endBackgroundTask()
}
}

func endBackgroundTask() {
if backgroundTask != .invalid {
UIApplication.shared.endBackgroundTask(backgroundTask)
backgroundTask = .invalid
}
timer?.invalidate()
timer = nil
}

func applicationDidEnterBackground(_ application: UIApplication) {
// Start keeping the socket alive for 10 minutes
keepSocketAliveForTenMinutes()
}

func applicationWillEnterForeground(_ application: UIApplication) {
// End the background task when the app returns to the foreground
endBackgroundTask()
}

func applicationWillTerminate(_ application: UIApplication) {
endBackgroundTask()
}

// Other methods ...
}


Подробнее здесь: https://stackoverflow.com/questions/793 ... acitor-ios
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»