- 新增 managed/external/nested 三种传输保护模式 - 新增 peer attach 显式认证、抗重放、channel binding 和可选前向保密协商 - 明确单连接注入与可重拨连接源的语义边界 - 禁止 ConnectByConn 场景下 dedicated bulk 走 sidecar,auto 模式自动回退 shared - 修正 dedicated attach 在 bootstrap/steady profile 切换下的处理逻辑 - 优化 shared bulk super-batch 与批量 framed write 路径 - 降低 stream/bulk fast path 的复制和分发损耗 - 补齐 benchmark、回归测试、运行时快照和 README 文档
95 lines
3.9 KiB
Go
95 lines
3.9 KiB
Go
package notify
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
type Client interface {
|
|
SetDefaultLink(func(message *Message))
|
|
SetLink(string, func(*Message))
|
|
SetFileHandler(func(FileEvent))
|
|
SetStreamHandler(func(StreamAcceptInfo) error)
|
|
SetRecordStreamHandler(func(RecordAcceptInfo) error)
|
|
SetBulkHandler(func(BulkAcceptInfo) error)
|
|
SetTransferHandler(func(TransferAcceptInfo) (TransferReceiveOptions, error))
|
|
GetStreamConfig() StreamConfig
|
|
SetStreamConfig(StreamConfig)
|
|
SetTransferResumeStore(TransferResumeStore)
|
|
RecoverTransferSnapshots(context.Context) error
|
|
SetBulkNetworkProfile(BulkNetworkProfile)
|
|
BulkNetworkProfile() BulkNetworkProfile
|
|
SetBulkDefaultOpenMode(BulkOpenMode)
|
|
BulkDefaultOpenMode() BulkOpenMode
|
|
SetBulkOpenTuning(BulkOpenTuning)
|
|
BulkOpenTuning() BulkOpenTuning
|
|
SetBulkDedicatedAttachConfig(BulkDedicatedAttachConfig)
|
|
BulkDedicatedAttachConfig() BulkDedicatedAttachConfig
|
|
SetPeerAttachSecurityConfig(PeerAttachSecurityConfig) error
|
|
PeerAttachSecurityConfig() PeerAttachSecurityConfig
|
|
SetFileReceiveDir(dir string) error
|
|
send(msg TransferMsg) (WaitMsg, error)
|
|
sendEnvelope(env Envelope) error
|
|
sendWait(msg TransferMsg, timeout time.Duration) (Message, error)
|
|
Send(key string, value MsgVal) error
|
|
SendWait(key string, value MsgVal, timeout time.Duration) (Message, error)
|
|
SendWaitObj(key string, value interface{}, timeout time.Duration) (Message, error)
|
|
SendCtx(ctx context.Context, key string, value MsgVal) (Message, error)
|
|
Reply(m Message, value MsgVal) error
|
|
// Deprecated: ExchangeKey drives the legacy RSA-based key exchange flow.
|
|
// Prefer UseModernPSKClient.
|
|
ExchangeKey(newKey []byte) error
|
|
Connect(network string, addr string) error
|
|
ConnectTimeout(network string, addr string, timeout time.Duration) error
|
|
ConnectByConn(conn net.Conn) error
|
|
ConnectByFactory(ctx context.Context, dialFn func(context.Context) (net.Conn, error)) error
|
|
// Deprecated: SkipExchangeKey only controls the legacy RSA-based key exchange.
|
|
SkipExchangeKey() bool
|
|
// Deprecated: SetSkipExchangeKey only controls the legacy RSA-based key exchange.
|
|
SetSkipExchangeKey(bool)
|
|
|
|
GetMsgEn() func([]byte, []byte) []byte
|
|
// Deprecated: SetMsgEn overrides the transport codec directly.
|
|
// Prefer UseModernPSKClient or UseLegacySecurityClient.
|
|
SetMsgEn(func([]byte, []byte) []byte)
|
|
GetMsgDe() func([]byte, []byte) []byte
|
|
// Deprecated: SetMsgDe overrides the transport codec directly.
|
|
// Prefer UseModernPSKClient or UseLegacySecurityClient.
|
|
SetMsgDe(func([]byte, []byte) []byte)
|
|
|
|
Heartbeat()
|
|
HeartbeatPeroid() time.Duration
|
|
SetHeartbeatPeroid(duration time.Duration)
|
|
|
|
GetSecretKey() []byte
|
|
// Deprecated: SetSecretKey injects a raw transport key directly.
|
|
// Prefer UseModernPSKClient or UseLegacySecurityClient.
|
|
SetSecretKey(key []byte)
|
|
// Deprecated: RsaPubKey exposes the legacy RSA handshake key. Prefer UseModernPSKClient.
|
|
RsaPubKey() []byte
|
|
// Deprecated: SetRsaPubKey configures the legacy RSA handshake key. Prefer UseModernPSKClient.
|
|
SetRsaPubKey([]byte)
|
|
|
|
Stop() error
|
|
StopMonitorChan() <-chan struct{}
|
|
Status() Status
|
|
ShowError(bool)
|
|
DebugMode(bool)
|
|
IsDebugMode() bool
|
|
|
|
GetSequenceEn() func(interface{}) ([]byte, error)
|
|
SetSequenceEn(func(interface{}) ([]byte, error))
|
|
GetSequenceDe() func([]byte) (interface{}, error)
|
|
SetSequenceDe(func([]byte) (interface{}, error))
|
|
SendObjCtx(ctx context.Context, key string, val interface{}) (Message, error)
|
|
SendObj(key string, val interface{}) error
|
|
OpenStream(ctx context.Context, opt StreamOpenOptions) (Stream, error)
|
|
OpenRecordStream(ctx context.Context, opt RecordOpenOptions) (RecordStream, error)
|
|
OpenBulk(ctx context.Context, opt BulkOpenOptions) (Bulk, error)
|
|
OpenSharedBulk(ctx context.Context, opt BulkOpenOptions) (Bulk, error)
|
|
OpenDedicatedBulk(ctx context.Context, opt BulkOpenOptions) (Bulk, error)
|
|
SendTransfer(ctx context.Context, opt TransferSendOptions) (TransferHandle, error)
|
|
SendFile(ctx context.Context, filePath string) error
|
|
}
|