【问题标题】:Keeping Socket Alive with Vapor 3使用 Vapor 3 保持 Socket 活跃
【发布时间】:2018-11-03 00:12:43
【问题描述】:

我在使用 Vapor 3 构建的应用程序中有一个 Web 套接字,该应用程序已部署到 Heroku。插座一直关闭。如何在 Vapor 3 中保持套接字处于活动状态?在 Vapor 2 中,我使用了这些代码行。我如何在 Vapor 3 中做同样的事情?

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

【问题讨论】:

    标签: swift heroku websocket vapor


    【解决方案1】:

    这是我使用的解决方案,它似乎适用于我的用例。如果有更好的解决方案,请告诉我。

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

    我将它包含在我的网络套接字函数中,就在ws.onText({ ws, string in 的上方/下方。我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 2011-08-07
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多