Сохраняя гнездо живым с паром 3 - PullRequest
0 голосов
/ 24 мая 2018

У меня есть веб-сокет в приложении, созданном с использованием Vapor 3, который я развернул в Heroku.Сокет продолжает закрываться.Как мне сохранить розетку в Vapor 3?В Vapor 2 я использовал эти строки кода.Как бы я сделал то же самое в Vapor 3?

background {
    while ws.state == .open {
        try? ws.ping()
        self.console.wait(seconds: 10) // every 10 seconds
    }
}

1 Ответ

0 голосов
/ 19 июля 2018

Вот решение, которое я использовал, и, похоже, оно хорошо работает для моего варианта использования.Если есть лучшее решение, дайте мне знать.

func runRepeatedTask() {
    _ = req.eventLoop.scheduleTask(in: .seconds(1)) { () -> Void in
        ws.send(Data())
        if socketOpen {
            runRepeatedTask()
        }
    }
}
runRepeatedTask()

Я включил это в функцию веб-сокета прямо над / под ws.onText({ ws, string in.Надеюсь, это поможет!

...