Documentation
¶
Overview ¶
Package proto contains protocol buffers for gRPC pubsub event ingestion and delivery system.
Using gRPC client ¶
## Publish example:
package main import ( "context" "fmt" "os" "time" "google.golang.org/grpc" "google.golang.org/grpc/keepalive" "github.com/vardius/pubsub/v2/proto" ) func main() { host:= "0.0.0.0" port:= 9090 ctx := context.Background() opts := []grpc.DialOption{ grpc.WithInsecure(), grpc.WithKeepaliveParams(keepalive.ClientParameters{ Time: 10 * time.Second, // send pings every 10 seconds if there is no activity Timeout: 20 * time.Second, // wait 20 second for ping ack before considering the connection dead PermitWithoutStream: true, // send pings even without active streams }), } conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", host, port), opts...) if err != nil { os.Exit(1) } defer conn.Close() client := proto.NewPubSubClient(conn) client.Publish(ctx, &proto.PublishRequest{ Topic: "my-topic", Payload: []byte("Hello you!"), }) }
## Subscribe example:
package main import ( "context" "fmt" "os" "time" "google.golang.org/grpc" "google.golang.org/grpc/keepalive" "github.com/vardius/pubsub/v2/proto" ) func main() { host:= "0.0.0.0" port:= 9090 ctx := context.Background() opts := []grpc.DialOption{ grpc.WithInsecure(), grpc.WithKeepaliveParams(keepalive.ClientParameters{ Time: 10 * time.Second, // send pings every 10 seconds if there is no activity Timeout: 20 * time.Second, // wait 20 second for ping ack before considering the connection dead PermitWithoutStream: true, // send pings even without active streams }), } conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", host, port), opts...) if err != nil { os.Exit(1) } defer conn.Close() client := proto.NewPubSubClient(conn) stream, err := client.Subscribe(ctx, &proto.SubscribeRequest{ Topic: "my-topic", }) if err != nil { os.Exit(1) } for { resp, err := stream.Recv() if err != nil { os.Exit(1) // stream closed or error } fmt.Println(resp.GetPayload()) } }
Index ¶
- func RegisterPubSubServer(s *grpc.Server, srv PubSubServer)
- type PubSubClient
- type PubSubServer
- type PubSub_SubscribeClient
- type PubSub_SubscribeServer
- type PublishRequest
- func (*PublishRequest) Descriptor() ([]byte, []int)
- func (m *PublishRequest) GetPayload() []byte
- func (m *PublishRequest) GetTopic() string
- func (*PublishRequest) ProtoMessage()
- func (m *PublishRequest) Reset()
- func (m *PublishRequest) String() string
- func (m *PublishRequest) XXX_DiscardUnknown()
- func (m *PublishRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *PublishRequest) XXX_Merge(src proto.Message)
- func (m *PublishRequest) XXX_Size() int
- func (m *PublishRequest) XXX_Unmarshal(b []byte) error
- type SubscribeRequest
- func (*SubscribeRequest) Descriptor() ([]byte, []int)
- func (m *SubscribeRequest) GetTopic() string
- func (*SubscribeRequest) ProtoMessage()
- func (m *SubscribeRequest) Reset()
- func (m *SubscribeRequest) String() string
- func (m *SubscribeRequest) XXX_DiscardUnknown()
- func (m *SubscribeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *SubscribeRequest) XXX_Merge(src proto.Message)
- func (m *SubscribeRequest) XXX_Size() int
- func (m *SubscribeRequest) XXX_Unmarshal(b []byte) error
- type SubscribeResponse
- func (*SubscribeResponse) Descriptor() ([]byte, []int)
- func (m *SubscribeResponse) GetPayload() []byte
- func (*SubscribeResponse) ProtoMessage()
- func (m *SubscribeResponse) Reset()
- func (m *SubscribeResponse) String() string
- func (m *SubscribeResponse) XXX_DiscardUnknown()
- func (m *SubscribeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
- func (m *SubscribeResponse) XXX_Merge(src proto.Message)
- func (m *SubscribeResponse) XXX_Size() int
- func (m *SubscribeResponse) XXX_Unmarshal(b []byte) error
- type UnimplementedPubSubServer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterPubSubServer ¶
func RegisterPubSubServer(s *grpc.Server, srv PubSubServer)
Types ¶
type PubSubClient ¶
type PubSubClient interface { Publish(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*empty.Empty, error) Subscribe(ctx context.Context, in *SubscribeRequest, opts ...grpc.CallOption) (PubSub_SubscribeClient, error) }
PubSubClient is the client API for PubSub service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
func NewPubSubClient ¶
func NewPubSubClient(cc grpc.ClientConnInterface) PubSubClient
type PubSubServer ¶
type PubSubServer interface { Publish(context.Context, *PublishRequest) (*empty.Empty, error) Subscribe(*SubscribeRequest, PubSub_SubscribeServer) error }
PubSubServer is the server API for PubSub service.
type PubSub_SubscribeClient ¶
type PubSub_SubscribeClient interface { Recv() (*SubscribeResponse, error) grpc.ClientStream }
type PubSub_SubscribeServer ¶
type PubSub_SubscribeServer interface { Send(*SubscribeResponse) error grpc.ServerStream }
type PublishRequest ¶
type PublishRequest struct { Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
PublishRequest is passed when publishing
func (*PublishRequest) Descriptor ¶
func (*PublishRequest) Descriptor() ([]byte, []int)
func (*PublishRequest) GetPayload ¶
func (m *PublishRequest) GetPayload() []byte
func (*PublishRequest) GetTopic ¶
func (m *PublishRequest) GetTopic() string
func (*PublishRequest) ProtoMessage ¶
func (*PublishRequest) ProtoMessage()
func (*PublishRequest) Reset ¶
func (m *PublishRequest) Reset()
func (*PublishRequest) String ¶
func (m *PublishRequest) String() string
func (*PublishRequest) XXX_DiscardUnknown ¶
func (m *PublishRequest) XXX_DiscardUnknown()
func (*PublishRequest) XXX_Marshal ¶
func (m *PublishRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*PublishRequest) XXX_Merge ¶
func (m *PublishRequest) XXX_Merge(src proto.Message)
func (*PublishRequest) XXX_Size ¶
func (m *PublishRequest) XXX_Size() int
func (*PublishRequest) XXX_Unmarshal ¶
func (m *PublishRequest) XXX_Unmarshal(b []byte) error
type SubscribeRequest ¶
type SubscribeRequest struct { Topic string `protobuf:"bytes,1,opt,name=topic,proto3" json:"topic,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
SubscribeRequest is passed when subscribing
func (*SubscribeRequest) Descriptor ¶
func (*SubscribeRequest) Descriptor() ([]byte, []int)
func (*SubscribeRequest) GetTopic ¶
func (m *SubscribeRequest) GetTopic() string
func (*SubscribeRequest) ProtoMessage ¶
func (*SubscribeRequest) ProtoMessage()
func (*SubscribeRequest) Reset ¶
func (m *SubscribeRequest) Reset()
func (*SubscribeRequest) String ¶
func (m *SubscribeRequest) String() string
func (*SubscribeRequest) XXX_DiscardUnknown ¶
func (m *SubscribeRequest) XXX_DiscardUnknown()
func (*SubscribeRequest) XXX_Marshal ¶
func (m *SubscribeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*SubscribeRequest) XXX_Merge ¶
func (m *SubscribeRequest) XXX_Merge(src proto.Message)
func (*SubscribeRequest) XXX_Size ¶
func (m *SubscribeRequest) XXX_Size() int
func (*SubscribeRequest) XXX_Unmarshal ¶
func (m *SubscribeRequest) XXX_Unmarshal(b []byte) error
type SubscribeResponse ¶
type SubscribeResponse struct { Payload []byte `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` }
SubscribeResponse object
func (*SubscribeResponse) Descriptor ¶
func (*SubscribeResponse) Descriptor() ([]byte, []int)
func (*SubscribeResponse) GetPayload ¶
func (m *SubscribeResponse) GetPayload() []byte
func (*SubscribeResponse) ProtoMessage ¶
func (*SubscribeResponse) ProtoMessage()
func (*SubscribeResponse) Reset ¶
func (m *SubscribeResponse) Reset()
func (*SubscribeResponse) String ¶
func (m *SubscribeResponse) String() string
func (*SubscribeResponse) XXX_DiscardUnknown ¶
func (m *SubscribeResponse) XXX_DiscardUnknown()
func (*SubscribeResponse) XXX_Marshal ¶
func (m *SubscribeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)
func (*SubscribeResponse) XXX_Merge ¶
func (m *SubscribeResponse) XXX_Merge(src proto.Message)
func (*SubscribeResponse) XXX_Size ¶
func (m *SubscribeResponse) XXX_Size() int
func (*SubscribeResponse) XXX_Unmarshal ¶
func (m *SubscribeResponse) XXX_Unmarshal(b []byte) error
type UnimplementedPubSubServer ¶
type UnimplementedPubSubServer struct { }
UnimplementedPubSubServer can be embedded to have forward compatible implementations.
func (*UnimplementedPubSubServer) Publish ¶
func (*UnimplementedPubSubServer) Publish(ctx context.Context, req *PublishRequest) (*empty.Empty, error)
func (*UnimplementedPubSubServer) Subscribe ¶
func (*UnimplementedPubSubServer) Subscribe(req *SubscribeRequest, srv PubSub_SubscribeServer) error
Click to show internal directories.
Click to hide internal directories.