socketio-0.1.3: Web/SocketIO/Event.hs
--------------------------------------------------------------------------------
-- | Functions exposed to end users in CallbackM
{-# LANGUAGE OverloadedStrings #-}
module Web.SocketIO.Event where
--------------------------------------------------------------------------------
import Web.SocketIO.Types
--------------------------------------------------------------------------------
import Control.Applicative ((<$>))
import Control.Monad.Reader
import qualified Data.Aeson as Aeson
import qualified Data.ByteString.Lazy as BL
{-# DEPRECATED reply "use msg instead" #-}
--------------------------------------------------------------------------------
-- | This function is deprecated; use 'msg' instead
reply :: CallbackM [Aeson.Value]
reply = do
Payload p <- callbackEnvPayload <$> ask
return p
--------------------------------------------------------------------------------
-- | Extracts payload carried by the event
--
-- @
-- `on` \"echo\" $ do
-- payload <- msg
-- liftIO $ print payload
-- emit "echo" payload
-- @
msg :: CallbackM [Aeson.Value]
msg = do
Payload p <- callbackEnvPayload <$> ask
return p
--------------------------------------------------------------------------------
-- | Lazy ByteString version of `msg`, convenient for Aeson decoding.
msg' :: CallbackM [BL.ByteString]
msg' = do
Payload p <- callbackEnvPayload <$> ask
return (map serialize p)
--------------------------------------------------------------------------------
-- | Name of the event
getEventName :: CallbackM EventName
getEventName = callbackEnvEventName <$> ask