【问题标题】:Haskell: Network conduit "callback" questionsHaskell:网络管道“回调”问题
【发布时间】:2013-05-23 01:00:25
【问题描述】:

我正在使用网络管道和 runTCPServer 为我搁浅的服务器供电。

在这种情况下:

-- | Helper which represents a conduit chain for each client connection
serverApp :: Application SessionIO
serverApp appdata = do
    -- blah blah blah initializer code
    appSource appdata $$ decoder =$= protocol =$= encoder =$ appSink appdata

...

-- | Handles an input stream of 'Packet' objects and dispatches them
protocol :: Conduit Packet SessionIO Packet
protocol = undefined

协议多久执行一次?如果我希望在客户端套接字上每隔一段时间及时执行某些事情,将其逻辑放在协议中是否安全,还是仅在每次数据实际到达时才调用它?

如果您能解释一下管道“回调”的工作方式,我将不胜感激。 :)

问候。

【问题讨论】:

    标签: networking haskell conduit


    【解决方案1】:

    FP Complete 上的Conduit Overview 解释了 Conduit 的流量控制:具体来说,管道仅在需要数据时才上链。因此,如果您依赖基于时间的副作用,那么依赖被调用的管道不是解决问题的方法。

    这在很大程度上取决于您的用例和管道链的结构,但是,因为您可以将延迟放入 Conduit 以对其进行速率限制或类似的东西。

    【讨论】:

    • 链接失效。另外,那么诱导基于时间的效果的标准做法是什么,例如发送 ping 数据包?
    猜你喜欢
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-04
    • 1970-01-01
    • 2022-11-20
    • 2015-06-02
    相关资源
    最近更新 更多