28 lines
		
	
	
		
			629 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			629 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package micro
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 
 | |
| 	"go.unistack.org/micro/v3/client"
 | |
| )
 | |
| 
 | |
| // Event is used to publish messages to a topic
 | |
| type Event interface {
 | |
| 	// Publish publishes a message to the event topic
 | |
| 	Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error
 | |
| }
 | |
| 
 | |
| type event struct {
 | |
| 	c     client.Client
 | |
| 	topic string
 | |
| }
 | |
| 
 | |
| // NewEvent creates a new event publisher
 | |
| func NewEvent(topic string, c client.Client) Event {
 | |
| 	return &event{c, topic}
 | |
| }
 | |
| 
 | |
| func (e *event) Publish(ctx context.Context, msg interface{}, opts ...client.PublishOption) error {
 | |
| 	return e.c.Publish(ctx, e.c.NewMessage(e.topic, msg), opts...)
 | |
| }
 |