server

package
v0.0.0-...-9ec6d29 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2022 License: Apache-2.0, MIT Imports: 12 Imported by: 0

Documentation

Overview

Package server provides a common server implementation that can connect with remote.Remote.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClientHandler

type ClientHandler interface {
	// NewClient is called when a new client connects to the server. It returns
	// a handler that will be bound to the client.
	NewClient() (MessageHandler, error)
}

ClientHandler is used to interface with client that connect to the server.

type CommonServer

type CommonServer struct {
	// Endpoint is the path to the socket that the server listens to.
	Endpoint string
	// contains filtered or unexported fields
}

CommonServer provides common functionality to connect and process messages from different clients. Implementors decide how clients and messages are handled, e.g. counting messages for testing.

func (*CommonServer) Close

func (s *CommonServer) Close()

Close stops listening and closes all connections.

func (*CommonServer) Init

func (s *CommonServer) Init(path string, handler ClientHandler)

Init initializes the server. It must be called before it is used.

func (*CommonServer) Start

func (s *CommonServer) Start() error

Start creates the socket file and listens for new connections.

func (*CommonServer) WaitForNoClients

func (s *CommonServer) WaitForNoClients()

WaitForNoClients waits until the number of clients connected reaches 0.

type MessageHandler

type MessageHandler interface {
	// Message processes a single message. raw contains the entire unparsed
	// message. hdr is the parser message header and payload is the unparsed
	// message data.
	Message(raw []byte, hdr wire.Header, payload []byte) error

	// Version returns what wire version of the protocol is supported.
	Version() uint32

	// Close closes the handler.
	Close()
}

MessageHandler is used to process messages from a client.

Jump to

Keyboard shortcuts

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