many improvements with options and noop stuff

* add many options helpers
* fix noop client to allow publish messages to topic in broker
* fix noop server to allow registering in registry
* fix noop server to allow subscribe to topic in broker
* fix new service initialization

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2020-10-16 09:38:57 +03:00
parent a59aae760f
commit 14c97d59c1
39 changed files with 1384 additions and 432 deletions

View File

@@ -1,8 +1,10 @@
// Package broker is an interface used for asynchronous messaging
package broker
import "context"
var (
DefaultBroker Broker = newBroker()
DefaultBroker Broker = &NoopBroker{opts: NewOptions()}
)
// Broker is an interface used for asynchronous messaging.
@@ -10,10 +12,10 @@ type Broker interface {
Init(...Option) error
Options() Options
Address() string
Connect() error
Disconnect() error
Publish(topic string, m *Message, opts ...PublishOption) error
Subscribe(topic string, h Handler, opts ...SubscribeOption) (Subscriber, error)
Connect(context.Context) error
Disconnect(context.Context) error
Publish(context.Context, string, *Message, ...PublishOption) error
Subscribe(context.Context, string, Handler, ...SubscribeOption) (Subscriber, error)
String() string
}
@@ -39,5 +41,5 @@ type Message struct {
type Subscriber interface {
Options() SubscribeOptions
Topic() string
Unsubscribe() error
Unsubscribe(context.Context) error
}