pubsub

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jul 18, 2021 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (

	// ErrResponseNotReceived indicates a response was not received after publishing a message.
	ErrResponseNotReceived = errors.New("response not received")
)

Functions

This section is empty.

Types

type EventHandler

type EventHandler func(from peer.ID, topic string, msg []byte)

EventHandler is used to receive topic peer events.

type MessageHandler

type MessageHandler func(from peer.ID, topic string, msg []byte) ([]byte, error)

MessageHandler is used to receive topic messages.

type PublishOption

type PublishOption func(*PublishOptions) error

PublishOption defines a Publish option.

func WithIgnoreResponse

func WithIgnoreResponse(enable bool) PublishOption

WithIgnoreResponse indicates whether or not Publish will wait for a response(s) from the receiver(s). Default: disabled.

func WithMultiResponse

func WithMultiResponse(enable bool) PublishOption

WithMultiResponse indicates whether or not Publish will wait for multiple responses before returning. Default: disabled.

func WithPubOpts

func WithPubOpts(opts ...pubsub.PubOpt) PublishOption

WithPubOpts sets native pubsub.PubOpt options.

type PublishOptions

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

PublishOptions defines options for Publish.

type Response

type Response struct {
	// ID is the cid.Cid of the received message.
	ID string
	// From is the peer.ID of the sender.
	From peer.ID
	// Data is the message data.
	Data []byte
	// Err is an error from the sender.
	Err error
}

Response wraps a message response.

type Topic

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

Topic provides a nice interface to a libp2p pubsub topic.

func NewTopic

func NewTopic(ctx context.Context, ps *pubsub.PubSub, host peer.ID, topic string, subscribe bool) (*Topic, error)

NewTopic returns a new topic for the host.

func (*Topic) Close

func (t *Topic) Close() error

Close the topic.

func (*Topic) Publish

func (t *Topic) Publish(
	ctx context.Context,
	data []byte,
	opts ...PublishOption,
) (<-chan Response, error)

Publish data. See PublishOptions for option details.

func (*Topic) SetEventHandler

func (t *Topic) SetEventHandler(handler EventHandler)

SetEventHandler sets a handler func that will be called with peer events.

func (*Topic) SetMessageHandler

func (t *Topic) SetMessageHandler(handler MessageHandler)

SetMessageHandler sets a handler func that will be called with topic messages. A subscription is required for the handler to be called.

Jump to

Keyboard shortcuts

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