我正在使用network-conduit和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
协议执行的频率是多少?如果我希望在客户端套接字上经常执行某些操作,那么将其逻辑放在协议中是安全的,还是每次数据实际到达时都会调用它?
如果您解释管道“回调”工作的方式,我将不胜感激。 :)
问候。
答案 0 :(得分:2)
FP Complete的Conduit Overview结束解释了Conduit的流量控制:特别是当需要数据时,管道只会上升。因此,如果你依赖于基于时间的副作用,那么依靠被调用的管道就不是这样做的。
这在很大程度上取决于您的用例和管道链的结构,但是,因为您可以将延迟放入Conduit
以对其进行速率限制或类似的事情。