socket

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 9, 2019 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewClient

func NewClient(uri *transport.URI, socket *DuplexRSocket) *defaultClientSocket

func NewClientResume

func NewClientResume(uri *transport.URI, socket *DuplexRSocket) *resumeClientSocket

Types

type AbstractRSocket

type AbstractRSocket struct {
	FF func(Payload)
	MP func(Payload)
	RR func(Payload) Mono
	RS func(Payload) Flux
	RC func(Publisher) Flux
}

func (AbstractRSocket) FireAndForget

func (p AbstractRSocket) FireAndForget(msg Payload)

func (AbstractRSocket) MetadataPush

func (p AbstractRSocket) MetadataPush(msg Payload)

func (AbstractRSocket) RequestChannel

func (p AbstractRSocket) RequestChannel(msgs Publisher) Flux

func (AbstractRSocket) RequestResponse

func (p AbstractRSocket) RequestResponse(msg Payload) Mono

func (AbstractRSocket) RequestStream

func (p AbstractRSocket) RequestStream(msg Payload) Flux

type ClientSocket

type ClientSocket interface {
	Closeable
	Responder
	Setup(ctx context.Context, setup *SetupInfo) (err error)
}

type Closeable

type Closeable interface {
	io.Closer
	OnClose(closer func())
}

type DuplexRSocket

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

func NewClientDuplexRSocket

func NewClientDuplexRSocket(
	mtu int,
	scheduler rx.Scheduler,
	keepaliveInterval time.Duration,
) (s *DuplexRSocket)

func NewServerDuplexRSocket

func NewServerDuplexRSocket(mtu int, scheduler rx.Scheduler) *DuplexRSocket

func (*DuplexRSocket) Close

func (p *DuplexRSocket) Close() (err error)

func (*DuplexRSocket) FireAndForget

func (p *DuplexRSocket) FireAndForget(sending payload.Payload)

func (*DuplexRSocket) MarkZombie

func (p *DuplexRSocket) MarkZombie()

func (*DuplexRSocket) MetadataPush

func (p *DuplexRSocket) MetadataPush(payload payload.Payload)

func (*DuplexRSocket) RequestChannel

func (p *DuplexRSocket) RequestChannel(publisher rx.Publisher) rx.Flux

func (*DuplexRSocket) RequestResponse

func (p *DuplexRSocket) RequestResponse(pl payload.Payload) rx.Mono

func (*DuplexRSocket) RequestStream

func (p *DuplexRSocket) RequestStream(sending payload.Payload) rx.Flux

func (*DuplexRSocket) SetResponder

func (p *DuplexRSocket) SetResponder(responder Responder)

func (*DuplexRSocket) SetTransport

func (p *DuplexRSocket) SetTransport(tp *transport.Transport)

type Responder

type Responder interface {
	// FireAndForget is a single one-way message.
	FireAndForget(msg Payload)
	// MetadataPush sends asynchronous Metadata frame.
	MetadataPush(msg Payload)
	// RequestResponse request single response.
	RequestResponse(msg Payload) Mono
	// RequestStream request a completable stream.
	RequestStream(msg Payload) Flux
	// RequestChannel request a completable stream in both directions.
	RequestChannel(msgs Publisher) Flux
}

Responder is a contract providing different interaction models for RSocket protocol.

type ServerSocket

type ServerSocket interface {
	Closeable
	Responder
	SetResponder(responder Responder)
	SetTransport(tp *transport.Transport)
	Pause() bool
	Start(ctx context.Context) error
	Token() (token []byte, ok bool)
}

func NewServer

func NewServer(socket *DuplexRSocket) ServerSocket

func NewServerResume

func NewServerResume(socket *DuplexRSocket, token []byte) ServerSocket

type SetupInfo

type SetupInfo struct {
	Version           common.Version
	KeepaliveInterval time.Duration
	KeepaliveLifetime time.Duration
	Token             []byte
	DataMimeType      []byte
	Data              []byte
	MetadataMimeType  []byte
	Metadata          []byte
}

func (*SetupInfo) ToFrame

func (p *SetupInfo) ToFrame() *framing.FrameSetup

Jump to

Keyboard shortcuts

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