Documentation
¶
Overview ¶
Package streaming interface
Index ¶
Constants ¶
const KitexUnusedProtection = 0
KitexUnusedProtection may be anonymously referenced in another package to avoid build error
Variables ¶
This section is empty.
Functions ¶
func CallWithTimeout ¶ added in v0.9.0
CallWithTimeout executes a function with timeout. If timeout is 0, the function will be executed without timeout; panic is not recovered in this case; If time runs out, it will return a kerrors.ErrRPCTimeout; If your function panics, it will also return a kerrors.ErrRPCTimeout with the panic details; Other kinds of errors are always returned by your function.
NOTE: the `cancel` function is necessary to cancel the underlying transport, otherwise the recv/send call will block until the transport is closed, which may cause surge of goroutines.
func NewCtxWithStream ¶ added in v0.9.0
func UnaryCompatibleMiddleware ¶ added in v0.9.0
func UnaryCompatibleMiddleware(mode serviceinfo.StreamingMode, allow bool) bool
UnaryCompatibleMiddleware returns whether to use compatible middleware for unary.
Types ¶
type Stream ¶
type Stream interface {
// SetHeader sets the header metadata. It may be called multiple times.
// When call multiple times, all the provided metadata will be merged.
// All the metadata will be sent out when one of the following happens:
// - ServerStream.SendHeader() is called;
// - The first response is sent out;
// - An RPC status is sent out (error or success).
SetHeader(metadata.MD) error
// SendHeader sends the header metadata.
// The provided md and headers set by SetHeader() will be sent.
// It fails if called multiple times.
SendHeader(metadata.MD) error
// SetTrailer sets the trailer metadata which will be sent with the RPC status.
// When called more than once, all the provided metadata will be merged.
SetTrailer(metadata.MD)
// Header is used for client side stream to receive header from server.
Header() (metadata.MD, error)
// Trailer is used for client side stream to receive trailer from server.
Trailer() metadata.MD
// Context the stream context.Context
Context() context.Context
// RecvMsg recvive message from peer
// will block until an error or a message received
// not concurrent-safety
RecvMsg(m interface{}) error
// SendMsg send message to peer
// will block until an error or enough buffer to send
// not concurrent-safety
SendMsg(m interface{}) error
// not concurrent-safety with SendMsg
io.Closer
}
Stream both client and server stream