websocket

package module
v0.0.0-...-2bf46cd Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 7, 2021 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Channel

type Channel struct {
	// contains filtered or unexported fields
}

Channel is a websocket connection that messages are read from and written to.

func (*Channel) Close

func (c *Channel) Close()

Close the channel.

func (*Channel) IsClose

func (c *Channel) IsClose() bool

func (*Channel) Send

func (c *Channel) Send(op OpCode, data []byte) error

Send a message over the channel. Once write concurrency of the handler is reached this method will block.

func (*Channel) SetOnClose

func (c *Channel) SetOnClose(callback func())

SetOnClose sets the callback to get called when the channel is closed.

type ChannelPool

type ChannelPool struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewChannelPool

func NewChannelPool() *ChannelPool

func (*ChannelPool) Delete

func (c *ChannelPool) Delete(id string)

func (*ChannelPool) Get

func (c *ChannelPool) Get(id string) *Channel

func (*ChannelPool) Set

func (c *ChannelPool) Set(id string, ch *Channel)

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

Handler is a high performance websocket handler that uses netpoll with read and write concurrency to allow a high number of concurrent websocket connections.

func NewHandler

func NewHandler(callback RecievedCallback, channels *ChannelPool) (*Handler, error)

NewHandler creates a new websocket handler.

func (*Handler) Dial

func (h *Handler) Dial(addr string) (*Channel, error)

CreateChannel upgrades the incoming http request into a websocket channel.

func (*Handler) SetPool

func (h *Handler) SetPool(pool *pool.Pool)

func (*Handler) Upgrade

func (h *Handler) Upgrade(w http.ResponseWriter, r *http.Request) (*Channel, error)

type OpCode

type OpCode ws.OpCode

OpCode represents an operation code.

const (
	OpText   OpCode = 0x1
	OpBinary OpCode = 0x2
)

Operation codes that will be used in the RecievedCallback. rfc6455 defines more operation codes but those are hidden by the implementation.

type RecievedCallback

type RecievedCallback func(c *Channel, op OpCode, data []byte)

RecievedCallback is the signature for the callback called when a message is recieved on a Channel.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL