network

package
v0.0.0-...-740fe35 Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2024 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	Conn        *websocket.Conn
	IncomingMsg *MessageQueue
	OutgoingMsg *MessageQueue
	// contains filtered or unexported fields
}

Client representa a un cliente conectado a un servidor WebSocket.

func NewClient

func NewClient(url string) (*Client, error)

func (*Client) Close

func (c *Client) Close()

func (*Client) Read

func (c *Client) Read() (string, bool)

func (*Client) ReadAll

func (c *Client) ReadAll() []string

func (*Client) Write

func (c *Client) Write(message string)

type ClientManager

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

ClientManager mantiene un registro de todas las conexiones de clientes WebSocket.

func NewClientManager

func NewClientManager() *ClientManager

NewClientManager crea e inicializa una nueva instancia de ClientManager.

func (*ClientManager) Broadcast

func (manager *ClientManager) Broadcast(message string)

func (*ClientManager) Close

func (manager *ClientManager) Close()

func (*ClientManager) GetClients

func (manager *ClientManager) GetClients() []*websocket.Conn

GetClients devuelve una lista de todas las conexiones de clientes activas.

func (*ClientManager) Read

func (manager *ClientManager) Read(conn *websocket.Conn, message string) (string, bool)

func (*ClientManager) ReadAll

func (manager *ClientManager) ReadAll() []PeerMessage

func (*ClientManager) RegisterClient

func (manager *ClientManager) RegisterClient(conn *websocket.Conn)

RegisterClient añade una nueva conexión de cliente al ClientManager.

func (*ClientManager) Run

func (manager *ClientManager) Run()

Run inicia el proceso de manejo de las conexiones de clientes.

func (*ClientManager) UnregisterClient

func (manager *ClientManager) UnregisterClient(conn *websocket.Conn)

UnregisterClient elimina una conexión de cliente existente del ClientManager.

func (*ClientManager) Write

func (manager *ClientManager) Write(conn *websocket.Conn, message string)

type GenericClient

type GenericClient interface {
	Close()
	Write(message string)
	Read() (string, bool)
	ReadAll() []string
}

type MessageQueue

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

MessageQueue representa una cola FIFO segura para concurrencia para almacenar mensajes.

func NewMessageQueue

func NewMessageQueue() *MessageQueue

NewMessageQueue crea una nueva instancia de MessageQueue.

func (*MessageQueue) Dequeue

func (q *MessageQueue) Dequeue() (string, bool)

Dequeue elimina y devuelve el primer elemento de la cola. Devuelve "", false si la cola está vacía.

func (*MessageQueue) Enqueue

func (q *MessageQueue) Enqueue(item string)

Enqueue agrega un elemento al final de la cola.

func (*MessageQueue) ReadAll

func (q *MessageQueue) ReadAll() []string

func (*MessageQueue) Size

func (q *MessageQueue) Size() int

Size devuelve el número actual de elementos en la cola.

type Peer

type Peer struct {
	Conn        *websocket.Conn
	IncomingMsg *MessageQueue
	OutgoingMsg *MessageQueue
	// contains filtered or unexported fields
}

Peer representa a un par conectado al servidor.

func NewPeer

func NewPeer(conn *websocket.Conn, events chan<- *websocket.Conn) *Peer

func (*Peer) Close

func (p *Peer) Close()

func (*Peer) Read

func (p *Peer) Read() (string, bool)

func (*Peer) Write

func (p *Peer) Write(message string)

type PeerMessage

type PeerMessage struct {
	Peer    *websocket.Conn
	Message string
}

type PeerMessageQueue

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

func NewPeerMessageQueue

func NewPeerMessageQueue() *PeerMessageQueue

func (*PeerMessageQueue) Dequeue

func (q *PeerMessageQueue) Dequeue() (PeerMessage, bool)

func (*PeerMessageQueue) Enqueue

func (q *PeerMessageQueue) Enqueue(item PeerMessage)

func (*PeerMessageQueue) ReadAll

func (q *PeerMessageQueue) ReadAll() []PeerMessage

type Server

type Server struct {
	Port string // Dirección en la que el servidor escuchará
}

func (*Server) Broadcast

func (s *Server) Broadcast(message string)

func (*Server) ReadAll

func (s *Server) ReadAll() []PeerMessage

func (*Server) Start

func (s *Server) Start()

Jump to

Keyboard shortcuts

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