2010-06-22 24 views
4

我有一個基本的了Mochiweb輪詢循環,如下所示,它除了執行其他任務,而不是打印到控制檯,並最終返回:Mochiweb中的長時間輪詢 - 如何判斷客戶端是否中止請求?

blah() -> 
    io:format("Blah") 
    blah() 

loop(Req) -> 
    PathParts = string:tokens(Req:get(path), "/") 
    case PathParts of 
    ["poll"] -> 
     blah() 

這個偉大的工程,直到客戶端中止他們的請求。例如,如果客戶端窗口關閉,則此過程將無限期地運行。

我想知道在mochiweb的start()中是否有一個選項,或者我忽略了會讓mochiweb自動終止這個過程,或者至少在客戶端中止時發送消息。有任何想法嗎?

回答

0

貌似一個的解決方案是建立另一個進程重複調用gen_tcp:recv(Req:get(socket), 0, 1)和尋找結果{error, closed},那麼如果接收殺死投票過程...不知道這是最優的。

相關問題