pub struct FutuGrpcService { /* private fields */ }Expand description
gRPC 服务实现
Implementations§
Source§impl FutuGrpcService
impl FutuGrpcService
pub fn new( router: Arc<RequestRouter>, push_broadcaster: Arc<GrpcPushBroadcaster>, ) -> Self
Sourcepub fn with_key_store(
router: Arc<RequestRouter>,
push_broadcaster: Arc<GrpcPushBroadcaster>,
key_store: Arc<KeyStore>,
) -> Self
pub fn with_key_store( router: Arc<RequestRouter>, push_broadcaster: Arc<GrpcPushBroadcaster>, key_store: Arc<KeyStore>, ) -> Self
仅 key_store,counters 新建(向后兼容,调用方暂未接 counters 时用)
Sourcepub fn with_auth(
router: Arc<RequestRouter>,
push_broadcaster: Arc<GrpcPushBroadcaster>,
key_store: Arc<KeyStore>,
counters: Arc<RuntimeCounters>,
) -> Self
pub fn with_auth( router: Arc<RequestRouter>, push_broadcaster: Arc<GrpcPushBroadcaster>, key_store: Arc<KeyStore>, counters: Arc<RuntimeCounters>, ) -> Self
完整构造:同时接 key_store + counters(v1.0 推荐入口)
counters 应由 main 全进程共享:REST / gRPC / MCP 共用一个实例才能保证
rate limit / 日累计跨接口一致
Trait Implementations§
Source§impl FutuOpenD for FutuGrpcService
impl FutuOpenD for FutuGrpcService
Source§fn request<'life0, 'async_trait>(
&'life0 self,
request: Request<FutuRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<FutuResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request<'life0, 'async_trait>(
&'life0 self,
request: Request<FutuRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<FutuResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
通用请求-响应
Source§fn subscribe_push<'life0, 'async_trait>(
&'life0 self,
request: Request<SubscribePushRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::SubscribePushStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn subscribe_push<'life0, 'async_trait>(
&'life0 self,
request: Request<SubscribePushRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<Self::SubscribePushStream>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
流式推送:客户端建立连接后持续接收行情、交易、广播推送
v1.1:按订阅 key 的 scope 过滤推送 —— qot:read-only 的 key 不会收到
trade 类(账户交易回报),对齐 REST /ws v0.9.0 加的 push filter。
Source§type SubscribePushStream = ReceiverStream<Result<PushEvent, Status>>
type SubscribePushStream = ReceiverStream<Result<PushEvent, Status>>
Server streaming response type for the SubscribePush method.
Auto Trait Implementations§
impl !Freeze for FutuGrpcService
impl !RefUnwindSafe for FutuGrpcService
impl Send for FutuGrpcService
impl Sync for FutuGrpcService
impl Unpin for FutuGrpcService
impl !UnwindSafe for FutuGrpcService
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].