module Network.SocketIO.Growler where import Control.Monad.Trans (MonadIO) import Control.Monad.Trans.Reader (ReaderT) import Control.Monad.Trans.State.Strict (StateT) import Network.SocketIO (initialize, RoutingTable, Socket) import Web.Growler (GrowlerT, HandlerT, matchAny, literal) import Network.EngineIO.Growler (growlerAPI) initializeSocketIO :: MonadIO m => StateT RoutingTable (ReaderT Socket (HandlerT m)) a -> IO (HandlerT m ()) initializeSocketIO = initialize growlerAPI socketIOHandler :: MonadIO m => HandlerT m () -> GrowlerT m () socketIOHandler = matchAny (literal "/socket.io")