问题标签 [actix-web]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asynchronous - 将请求正文转发到 Actix-Web 中的响应
我想将 Actix-Web 请求正文转发到响应正文(类似于 echo),但它给出了mismatched types
错误。
错误:
为什么会发生此错误,我该如何解决?
heroku - 在 Heroku 中使用带有 HTTP2 支持的 actix-web
我正在尝试在 Heroku 中部署一个提供 HTTP/2 支持的 actix-web示例,在稍微修改它以监听提供的$PORT
数字以及加载证书的方式之后——而不是从文件,它从环境中获取公钥和私钥。
问题是,对于每个请求,Heroku 路由器都会记录连接已关闭而没有响应。
由于它在本地工作,我怀疑问题出在我的测功机配置上,这是一个爱好(7 美元/月),尤其是在证书部分。由于应用程序希望从环境变量中接收证书信息,并且 Heroku 不会为您提供对其证书的访问权限(例如 xxxxx.herokuapp.com 的证书),因此我购买了一个域名,希望能自己生成。我做到了,使用以下页面。
使用自行生成的证书,到目前为止,我已经尝试了以下操作,导致出现以下错误的任何情况:
- 为测功机和应用程序提供相同的密钥对。日志产生上述错误。
- 不是向测功机提供 SSL 配置,而是向应用程序提供 SSL 配置。所以,
https
访问被禁用,甚至没有击中测功机。 - 不是向应用程序提供证书配置,而是向测功机提供证书配置。该应用程序在启动时崩溃。
但是,如果我删除相关rustls
行,一切都会顺利进行,但使用的协议是HTTP/1.1
.
因此,我想请问您:
- 让应用程序期望加载证书有什么根本上的坏处吗?
- 我应该尝试其他提供商吗?(例如 DigitalOcean、AWS、谷歌云)
- 你知道什么可以使它在 Heroku 中工作吗?
rust - 介绍中的 Actix Web 示例给出了运行时错误线程 'main' 在 'None' 值上的 '称为 `Option::unwrap()` 时惊慌失措
我开始使用actix-web 使用actix web 指南入门部分中的示例。运行代码时,我收到似乎来自 actix 框架的运行时错误。
版本:
- 赢10
- rustc 1.33.0 (2aa4c46cf 2019-02-28)
- actix-web 0.7.18
这是代码:
它编译正常,但我得到以下回溯,回溯中的相关行似乎是第 11 行似乎发生了恐慌,第 73 行显示了我的主函数中最终导致恐慌的调用。
我仔细检查了端口 8088 是否可用。我究竟做错了什么?
rust - Actix SyncArbiter 注册表
SyncArbiter
我正在尝试使用一个供不同参与者使用的 10 个 Redis 连接池。假设我们有一个名叫 Bob 的演员,他必须使用 Redis 演员来完成它的任务。
虽然这可以通过以下方式实现:
从 Bob 中的上述句柄实现,我们不清楚 Bob 是如何获得 Redis Actor 的地址的。或将任何消息发送给任何Actor
运行在SyncArbiter
.
Arbiter
使用常规和 a也可以实现相同的目的,Registry
但据我所知,Actix 不允许多个相同的演员(例如,我们不能使用常规启动 10 个 Redis 演员Arbiter
)。
正式化我的问题:
- 有没有
Registry
适合SyncArbiter
演员的 - 我可以在常规中启动多个相同类型的演员吗
Arbiter
- 是否有更好/更规范的方式来实现连接池
编辑
版本:
- 行动 0.7.9
- actix_web 0.7.19
- 期货=“0.1.26”
- 生锈 1.33.0
rust - 如何从带有客户端的 actix-web 处理程序向调用者返回错误?
我使用 actix_web 创建了一个服务器,它将通过 GET 连接到使用 actix 客户端的另一个服务,并在成功时返回正文或在错误时返回错误。我已经能够返回正文,但不知道如何返回错误。
这是我的处理程序:
rust - Rust - 将特征对象传递给线程
我已经为此苦苦挣扎了一段时间,只是在兜圈子,所以我希望有人能指出我哪里出错了。
我正在玩 Actix Web,并设置我的第一个处理程序 - 这是系统的简单健康检查。所以我得到的是:
Healthcheck
定义健康检查的特征- 一个
HealthcheckHandler
实现Handler
特征的结构(这是一个 Actix Web 概念)并包含一个 HashMap - 一个为健康检查路由构建
App
实例的函数(这是一个 Actix Web 概念),通过HashMap<String, &Healthcheck>
当我尝试构建它时,我得到了特征“无法安全地在线程之间发送”的错误。
我已经尝试过&Healthcheck
, Box<Healthcheck>
,Box<Healthcheck + Send>
基于此处的另一个答案,甚至Mutex<&Healthcheck>
都没有运气,但都有细微的不同错误。这一切似乎都需要实现一些同步、发送和/或克隆的组合,但我不知道如何在这里解决这个问题。
任何指向我应该解决这个问题的方法?
实际示例代码:
干杯
rust - 如何在 actix-web 中将查询字符串传递给 HttpRequest.url_for()?
关于 url_for 的文档。
代码:
如何将查询字符串添加到生成的 URL 中?name=Alex
?是否有一种很好的内置方式来使用HttpRequest.url_for()
(不仅仅是附加 like url += query_str
)
rust - 需要 IP 地址作为速率限制字符串 - Rust Actix
我正在尝试在 websocket 应用程序中实现基于 IP 地址的速率限制器,但我不知道如何将 IP 地址作为字符串获取。我一直在搜索文档,没有提到 IP 地址。
我有一个addr: Recipient<WSMessage>
和一个上下文。
到目前为止,我已经尝试过ctx.address()
- 无法转换为字符串
msg.addr.tx.0
- 无法将其拆箱。
rust - Actix-Web 在处理文件上传时报告“未配置应用程序数据”
我正在使用 Actix 框架来创建一个简单的服务器,并且我已经使用一个简单的 HTML 前端实现了文件上传。
运行服务器工作正常,但是当我提交文件上传时,它说:
应用数据未配置,配置使用 App::data()
我不知道该怎么办。
file-upload - 使用 actix-web-Framework 在 Rust 中的网络服务器上上传文件时使用原始文件名保存文件
我正在使用 actix-web 框架在 Rust 中创建一个网络服务器。目前我正在处理 Fileupload,为此我正在使用 actix-multipart。
在官方 Actix-Documentation 中有一个例子:
这将是它的最小工作实现,并且到目前为止运行良好。但正如您所见,filepathstring 是一个自定义字符串,它将服务器上的文件重命名为 upload.png ( let file_path_string = "upload.png"
)
那么有没有一种简单的方法来检索原始文件名并将其用作服务器上上传文件的文件名?