mist/internal/websocket
Types
pub type Handler(state, message) =
fn(state, HandlerMessage(message), WebsocketConnection) -> next.Next(
state,
message,
)
pub type HandlerMessage(user_message) {
Internal(websocket.Frame)
User(user_message)
}
Constructors
-
Internal(websocket.Frame) -
User(user_message)
pub type ValidMessage(user_message) {
SocketMessage(BitArray)
SocketClosedMessage
UserMessage(user_message)
}
Constructors
-
SocketMessage(BitArray) -
SocketClosedMessage -
UserMessage(user_message)
pub type WebsocketConnection {
WebsocketConnection(
socket: socket.Socket,
transport: transport.Transport,
deflate: option.Option(compression.Context),
)
}
Constructors
-
WebsocketConnection( socket: socket.Socket, transport: transport.Transport, deflate: option.Option(compression.Context), )
pub type WebsocketMessage(user_message) {
Valid(ValidMessage(user_message))
Invalid
}
Constructors
-
Valid(ValidMessage(user_message)) -
Invalid
pub type WebsocketState(state) {
WebsocketState(
buffer: BitArray,
user: state,
permessage_deflate: option.Option(compression.Compression),
)
}
Constructors
-
WebsocketState( buffer: BitArray, user: state, permessage_deflate: option.Option(compression.Compression), )
Values
pub fn initialize_connection(
on_init: fn(WebsocketConnection) -> #(
state,
option.Option(process.Selector(user_message)),
),
on_close: fn(state) -> Nil,
handler: fn(
state,
HandlerMessage(user_message),
WebsocketConnection,
) -> next.Next(state, user_message),
socket: socket.Socket,
transport: transport.Transport,
extensions: List(String),
) -> Result(actor.Started(process.Pid), actor.StartError)
pub fn set_active(
transport: transport.Transport,
socket: socket.Socket,
) -> Nil