example-spa-elm-app/frontend/src/Ports.elm

32 lines
694 B
Elm

port module Ports exposing
( socketOnEvent
, socketSend
, socketOpen
)
import Websockets
import Json.Encode as Encode
port webSocketCommand : Websockets.CommandPort msg
port webSocketEvent : Websockets.EventPort msg
socketName : String
socketName = "app"
socketOnEvent : Websockets.EventHandlers msg -> Sub msg
socketOnEvent eventHandlers =
socket.onEvent eventHandlers
socketSend : Encode.Value -> Cmd msg
socketSend data = socket.send socketName data
socketOpen : Cmd msg
socketOpen = socket.open socketName "/ws/" []
socket : Websockets.Methods msg
socket =
Websockets.withPorts
{ command = webSocketCommand
, event = webSocketEvent
}