server

package
v0.1.14-ntpfix Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2020 License: MIT Imports: 8 Imported by: 1

Documentation

Overview

Package server is used to wrap the p2p services to define multiple req-res messages under one protocol.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Item

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

Item is queue entry used to match responds to sent requests.

type Message

type Message interface {
	service.DirectMessage
	Data() service.Data
}

Message is helper type for `MessegeServer` messages.

type MessageServer

type MessageServer struct {
	log.Log
	ReqID uint64 //request id
	// contains filtered or unexported fields
}

MessageServer is a request-response multiplexer on top of the p2p layer. it provides a way to register message types on top of a protocol and declare request and response handlers. it matches incoming responses to requests.

func NewMsgServer

func NewMsgServer(network Service, name string, requestLifetime time.Duration, c chan service.DirectMessage, logger log.Log) *MessageServer

NewMsgServer registers a protocol and returns a new server to declare request and response handlers on.

func (*MessageServer) Close

func (p *MessageServer) Close()

Close stops the MessageServer

func (*MessageServer) RegisterBytesMsgHandler

func (p *MessageServer) RegisterBytesMsgHandler(msgType MessageType, reqHandler func([]byte) []byte)

RegisterBytesMsgHandler sets the handler to act on a specific message request.

func (*MessageServer) RegisterMsgHandler

func (p *MessageServer) RegisterMsgHandler(msgType MessageType, reqHandler func(message Message) []byte)

RegisterMsgHandler sets the handler to act on a specific message request.

func (*MessageServer) SendRequest

func (p *MessageServer) SendRequest(msgType MessageType, payload []byte, address p2pcrypto.PublicKey, resHandler func(msg []byte)) error

SendRequest sends a request of a specific message.

type MessageType

type MessageType uint32

MessageType is an int32 used to distinguish between server messages inside a single protocol.

type Service

type Service interface {
	RegisterDirectProtocolWithChannel(protocol string, ingressChannel chan service.DirectMessage) chan service.DirectMessage
	SendWrappedMessage(nodeID p2pcrypto.PublicKey, protocol string, payload *service.DataMsgWrapper) error
}

Service is the subset of method used by MessageServer for p2p communications.

Jump to

Keyboard shortcuts

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