github.com/Jeffail/benthos/v3@v3.65.0/lib/output/socket.go (about) 1 package output 2 3 import ( 4 "github.com/Jeffail/benthos/v3/internal/codec" 5 "github.com/Jeffail/benthos/v3/internal/docs" 6 "github.com/Jeffail/benthos/v3/lib/log" 7 "github.com/Jeffail/benthos/v3/lib/metrics" 8 "github.com/Jeffail/benthos/v3/lib/output/writer" 9 "github.com/Jeffail/benthos/v3/lib/types" 10 ) 11 12 //------------------------------------------------------------------------------ 13 14 func init() { 15 Constructors[TypeSocket] = TypeSpec{ 16 constructor: fromSimpleConstructor(NewSocket), 17 Summary: ` 18 Connects to a (tcp/udp/unix) server and sends a continuous stream of data, dividing messages according to the specified codec.`, 19 Description: multipartCodecDoc, 20 FieldSpecs: docs.FieldSpecs{ 21 docs.FieldCommon("network", "The network type to connect as.").HasOptions( 22 "unix", "tcp", "udp", 23 ), 24 docs.FieldCommon("address", "The address (or path) to connect to.", "/tmp/benthos.sock", "localhost:9000"), 25 codec.WriterDocs, 26 }, 27 Categories: []Category{ 28 CategoryNetwork, 29 }, 30 } 31 } 32 33 // NewSocket creates a new Socket output type. 34 func NewSocket(conf Config, mgr types.Manager, log log.Modular, stats metrics.Type) (Type, error) { 35 t, err := writer.NewSocket(conf.Socket, mgr, log, stats) 36 if err != nil { 37 return nil, err 38 } 39 return NewAsyncWriter(TypeSocket, 1, t, log, stats) 40 } 41 42 //------------------------------------------------------------------------------