Вот решение, которое я использовал, и, похоже, оно хорошо работает для моего варианта использования.Если есть лучшее решение, дайте мне знать.
func runRepeatedTask() {
_ = req.eventLoop.scheduleTask(in: .seconds(1)) { () -> Void in
ws.send(Data())
if socketOpen {
runRepeatedTask()
}
}
}
runRepeatedTask()
Я включил это в функцию веб-сокета прямо над / под ws.onText({ ws, string in
.Надеюсь, это поможет!