defmodule HTTP.WebSocket.Event.Open do
@moduledoc """
Browser-compatible WebSocket open event.
"""
defstruct target: nil, type: "open"
@type t :: %__MODULE__{target: HTTP.WebSocket.t() | nil, type: String.t()}
end
defmodule HTTP.WebSocket.Event.Message do
@moduledoc """
Browser-compatible WebSocket message event.
"""
defstruct target: nil, type: "message", data: nil, origin: nil
@type t :: %__MODULE__{
target: HTTP.WebSocket.t() | nil,
type: String.t(),
data: binary() | HTTP.Blob.t() | HTTP.WebSocket.ArrayBuffer.t() | nil,
origin: String.t() | nil
}
end
defmodule HTTP.WebSocket.Event.Error do
@moduledoc """
Browser-compatible WebSocket error event.
"""
defstruct target: nil, type: "error", reason: nil
@type t :: %__MODULE__{
target: HTTP.WebSocket.t() | nil,
type: String.t(),
reason: term()
}
end
defmodule HTTP.WebSocket.Event.Close do
@moduledoc """
Browser-compatible WebSocket close event.
"""
defstruct target: nil, type: "close", code: nil, reason: "", was_clean: false
@type t :: %__MODULE__{
target: HTTP.WebSocket.t() | nil,
type: String.t(),
code: non_neg_integer() | nil,
reason: String.t(),
was_clean: boolean()
}
end