如何使用带有Rust的Actix Web和WebSockets发送服务器事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用带有Rust的Actix Web和WebSockets发送服务器事件?相关的知识,希望对你有一定的参考价值。
我在Actix Web上使用Rust,并且希望将WebSocket用于服务器事件,主要是发送到客户端的状态消息。我遵循了基本结构,
struct StatusWS
impl Actor for StatusWS
type Context = ws::WebsocketContext<Self>;
fn started(&mut self, ctx: &mut Self::Context)
// How to keep track of ctx???
当客户端连接时,started()被调用,我可以使用ctx.text()等从那里发送消息。但是,我需要跟踪上下文以便以后发送消息。我怎么做?它已作为参考传递,因此借阅检查器不会让我做太多事情。
对我来说这是深水,但我认为您需要impl
Handlerfor StatusWS
。然后,当您将Addr发送给它时,您可以使用获得的.start()
作为返回值。然后,您将进入Actor
的handle
方法,该方法可以访问Handler
,并且可以发送ws消息。
我正在亲自学习Rust和Actix,所以这可能不是您实际使用的方法。让我知道怎么回事。
以上是关于如何使用带有Rust的Actix Web和WebSockets发送服务器事件?的主要内容,如果未能解决你的问题,请参考以下文章
Rust Web 全栈开发之 Actix 尝鲜并构建REST API
Rust Web 全栈开发之 Web Service 中的错误处理
rust构建actix-web出现error: failed to run custom build command for `miniz-sys v0.1.11`
rust构建actix-web出现error: failed to run custom build command for `miniz-sys v0.1.11`