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

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

pub type WebsocketMessage(user_message) {
  Valid(ValidMessage(user_message))
  Invalid
}

Constructors

pub type WebsocketState(state) {
  WebsocketState(
    buffer: BitArray,
    user: state,
    permessage_deflate: option.Option(compression.Compression),
  )
}

Constructors

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
✨ Search Document