From ead5d3388f18471d790cd9d4fe331c6ba70777d0 Mon Sep 17 00:00:00 2001 From: David Burkett Date: Wed, 4 Nov 2020 20:34:37 -0500 Subject: [PATCH 1/3] Remove the use of forkPingThread in Yesod.WebSockets and replaced it with withPingThread --- yesod-websockets/Yesod/WebSockets.hs | 4 ++-- yesod-websockets/yesod-websockets.cabal | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/yesod-websockets/Yesod/WebSockets.hs b/yesod-websockets/Yesod/WebSockets.hs index 8512b0ba..e4740266 100644 --- a/yesod-websockets/Yesod/WebSockets.hs +++ b/yesod-websockets/Yesod/WebSockets.hs @@ -117,8 +117,8 @@ webSocketsOptionsWith wsConnOpts buildAr inner = do rhead (\pconn -> do conn <- WS.acceptRequestWith pconn ar - WS.forkPingThread conn 30 - runInIO $ runReaderT inner conn) + WS.withPingThread conn 30 (pure ()) $ + runInIO $ runReaderT inner conn) src sink diff --git a/yesod-websockets/yesod-websockets.cabal b/yesod-websockets/yesod-websockets.cabal index eafe5bc6..8d0d9da7 100644 --- a/yesod-websockets/yesod-websockets.cabal +++ b/yesod-websockets/yesod-websockets.cabal @@ -1,5 +1,5 @@ name: yesod-websockets -version: 0.3.0.2 +version: 0.3.0.3 synopsis: WebSockets support for Yesod homepage: https://github.com/yesodweb/yesod license: MIT From da09fdc69ac1adc64f32f2220768704fa2cd9499 Mon Sep 17 00:00:00 2001 From: David Burkett Date: Wed, 4 Nov 2020 20:43:41 -0500 Subject: [PATCH 2/3] Updated the Changelog.md for yesod-websockets to include comment and link for PR 1700 --- yesod-websockets/ChangeLog.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/yesod-websockets/ChangeLog.md b/yesod-websockets/ChangeLog.md index babc6cdd..110b0f3f 100644 --- a/yesod-websockets/ChangeLog.md +++ b/yesod-websockets/ChangeLog.md @@ -1,3 +1,6 @@ +## 0.3.0.3 +* Removed the use of the deprecated forkPingThread and replaced it with the recommended withPingThread. [#1700](https://github.com/yesodweb/yesod/pull/1700) + ## 0.3.0.2 * `sendClose` and `sendPing` correctly find the `Connection` from `WebSocketsT` From c00d1e1aa8c0ad2d022e9548a171138c21352883 Mon Sep 17 00:00:00 2001 From: David Burkett Date: Wed, 4 Nov 2020 21:46:00 -0500 Subject: [PATCH 3/3] Use forkPingThread if websockets is less than 0.12.6.0 --- yesod-websockets/Yesod/WebSockets.hs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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