module Myo.WebSockets (
module Myo.WebSockets.Types
, ApplicationID
, APIVersion(..)
, connect
, sendCommand
) where
import Network.WebSockets
import Data.Monoid
import qualified Data.Aeson as JSON
import qualified Data.Vector as V
import Myo.WebSockets.Types
data APIVersion = V3
instance Show APIVersion where
show V3 = "3"
type ApplicationID = String
connect :: APIVersion
-> ApplicationID
-> String
-> Int
-> ClientApp a
-> IO a
connect apiVr aId host port app = do
runClient host port ("/myo/" <> show apiVr <> "?appid=" <> aId) app
sendCommand :: Connection -> Command -> IO ()
sendCommand conn cmd = do
sendBinaryData conn (JSON.encode $ JSON.Array (V.fromList ["command", JSON.toJSON cmd]))