miso
Copyright(C) 2016-2025 David M. Johnson
LicenseBSD3-style (see the file LICENSE)
MaintainerDavid M. Johnson <code@dmj.io>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Miso.WebSocket

Description

 
Synopsis

WebSocket

connect :: URL -> (WebSocket -> action) -> (Closed -> action) -> (JSVal -> action) -> (JSVal -> action) -> Effect parent model action Source #

socketState :: WebSocket -> (SocketState -> action) -> Effect parent model action Source #

Retrieves current status of WebSocket

If the WebSocket identifier does not exist a CLOSED is returned.

Defaults

Types

newtype WebSocket Source #

Constructors

WebSocket Int 

Instances

Instances details
Num WebSocket Source # 
Instance details

Defined in Miso.Runtime

Eq WebSocket Source # 
Instance details

Defined in Miso.Runtime

ToJSVal WebSocket Source # 
Instance details

Defined in Miso.Runtime

type URL = MisoString Source #

URL that the Websocket will connect to

data CloseCode Source #

Code corresponding to a closed connection https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent

Constructors

CLOSE_NORMAL

1000, Normal closure; the connection successfully completed whatever purpose for which it was created.

CLOSE_GOING_AWAY

1001, The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection.

CLOSE_PROTOCOL_ERROR

1002, The endpoint is terminating the connection due to a protocol error.

CLOSE_UNSUPPORTED

1003, The connection is being terminated because the endpoint received data of a type it cannot accept (for example, a textonly endpoint received binary data).

CLOSE_NO_STATUS

1005, Reserved. Indicates that no status code was provided even though one was expected.

CLOSE_ABNORMAL

1006, Reserved. Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected.

Unsupported_Data

1007, The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., nonUTF8 data within a text message).

Policy_Violation

1008, The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable.

CLOSE_TOO_LARGE

1009, The endpoint is terminating the connection because a data frame was received that is too large.

Missing_Extension

1010, The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.

Internal_Error

1011, The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request.

Service_Restart

1012, The server is terminating the connection because it is restarting.

Try_Again_Later

1013, The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients.

TLS_Handshake

1015, Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified).

OtherCode Int

OtherCode that is reserved and not in the range 0999

Instances

Instances details
Generic CloseCode Source # 
Instance details

Defined in Miso.Runtime

Associated Types

type Rep CloseCode 
Instance details

Defined in Miso.Runtime

type Rep CloseCode = D1 ('MetaData "CloseCode" "Miso.Runtime" "miso-1.9.0.0-inplace" 'False) (((C1 ('MetaCons "CLOSE_NORMAL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CLOSE_GOING_AWAY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLOSE_PROTOCOL_ERROR" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CLOSE_UNSUPPORTED" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLOSE_NO_STATUS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CLOSE_ABNORMAL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Unsupported_Data" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "Policy_Violation" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLOSE_TOO_LARGE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Missing_Extension" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Internal_Error" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Service_Restart" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Try_Again_Later" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TLS_Handshake" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherCode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))))
Show CloseCode Source # 
Instance details

Defined in Miso.Runtime

Eq CloseCode Source # 
Instance details

Defined in Miso.Runtime

FromJSVal CloseCode Source # 
Instance details

Defined in Miso.Runtime

ToJSVal CloseCode Source # 
Instance details

Defined in Miso.Runtime

type Rep CloseCode Source # 
Instance details

Defined in Miso.Runtime

type Rep CloseCode = D1 ('MetaData "CloseCode" "Miso.Runtime" "miso-1.9.0.0-inplace" 'False) (((C1 ('MetaCons "CLOSE_NORMAL" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "CLOSE_GOING_AWAY" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLOSE_PROTOCOL_ERROR" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "CLOSE_UNSUPPORTED" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLOSE_NO_STATUS" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "CLOSE_ABNORMAL" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Unsupported_Data" 'PrefixI 'False) (U1 :: Type -> Type)))) :+: (((C1 ('MetaCons "Policy_Violation" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "CLOSE_TOO_LARGE" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Missing_Extension" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Internal_Error" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "Service_Restart" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Try_Again_Later" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "TLS_Handshake" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "OtherCode" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int))))))

data Closed Source #

Constructors

Closed 

Instances

Instances details
Show Closed Source # 
Instance details

Defined in Miso.Runtime

Eq Closed Source # 
Instance details

Defined in Miso.Runtime

Methods

(==) :: Closed -> Closed -> Bool #

(/=) :: Closed -> Closed -> Bool #

FromJSVal Closed Source # 
Instance details

Defined in Miso.Runtime