diff --git a/yesod-websockets/Yesod/WebSockets.hs b/yesod-websockets/Yesod/WebSockets.hs index e4740266..94eede27 100644 --- a/yesod-websockets/Yesod/WebSockets.hs +++ b/yesod-websockets/Yesod/WebSockets.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE MultiParamTypeClasses #-} module Yesod.WebSockets @@ -117,8 +118,14 @@ webSocketsOptionsWith wsConnOpts buildAr inner = do rhead (\pconn -> do conn <- WS.acceptRequestWith pconn ar - WS.withPingThread conn 30 (pure ()) $ - runInIO $ runReaderT inner conn) + let app = runInIO $ runReaderT inner conn +#if MIN_VERSION_websockets(0,12,6) + WS.withPingThread conn 30 (pure ()) $ app +#else + WS.forkPingThread conn 30 + app +#endif + ) src sink