问题标签 [twisted.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.

0 投票
3 回答
7710 浏览

twisted - 多核/多处理器上的 TwistedWeb

在运行 TwistedWeb 服务器时,人们使用哪些技术来利用多个处理器/内核?有推荐的方法吗?

我的基于 twisted.web 的 Web 服务在 Amazon EC2 实例上运行,这些实例通常具有多个 CPU 内核(8、16),并且该服务所做的工作类型受益于额外的处理能力,所以我非常想使用那。

我知道可以在 Twisted 的多个实例之前使用配置为反向代理的 haproxy、squid 或 Web 服务器。事实上,我们目前正在使用这样的设置,nginx 充当多个上游twisted.web 服务的反向代理,这些服务在同一主机上运行,​​但每个服务都在不同的端口上。

这很好用,但我真正感兴趣的是一个没有“前置”服务器的解决方案,但所有扭曲的进程都以某种方式绑定到同一个套接字并接受请求。这样的事情甚至可能......还是我疯了?操作系统是 Linux (CentOS)。

谢谢。

安东。

0 投票
1 回答
934 浏览

python - 有人可以解释一下这个 Twisted 单元测试吗?

我只是继承了一些围绕 Twisted Python 的单元测试,如下所示。

虽然测试有效,但我从概念上不理解它。

鉴于下面的例子,有人可以解释一下下面的事情吗?

  • 为什么这个单元测试“返回页面”?
  • 为什么没有任何对 reactor.start() 的调用?
  • 关于这种方法的优点/缺点的任何评论,也许还有其他我可以考虑的?

0 投票
2 回答
6221 浏览

python - 具有异步响应的扭曲 http 服务器,其中请求必须等待数据可用或超时

我正在尝试编写一个简单的 http 服务器来处理在数据结构中查找响应或超时的异步请求:

  1. 请求到达
  2. 当时间 < 超时检查 responseCollector 的响应(使用 requestId 作为键)
  3. 如果响应,返回它
  4. 如果超时,则返回超时消息

我是扭曲的新手,想知道做异步响应的最佳方法是什么。我查看了一些扭曲的 Deferred 文档callLater,但我不清楚我到底应该做什么。现在我使用 deferToThread 运行一个阻塞方法并等待超时过去。我的延迟方法出现字符串不可调用错误:

这是我的代码:

发出请求(目前不返回任何有用的东西):

添加一些假数据以用于请求:

更新了工作版本

0 投票
2 回答
668 浏览

python - twisted 的 Deferred 是如何实现的?

它会在下面产生一个新线程吗?如果经典 Web 服务器生成一个线程来服务 HTTP 请求并且使用 Twisted web 我必须在每次我想查询 mysql 时生成一个 Deferred() - 增益在哪里?如果它产生了一个线程,看起来它没有意义,那么它是如何实现的呢?

0 投票
2 回答
3129 浏览

python - 我可以将 socket.io 与 twisted.web 一起使用吗?

我正在twisted.web服务器端使用 Python 编写一个 Web 应用程序。

在前端,我想用它Ajax来显示服务器中发生的事件的实时更新。

很多 关于如何做到这一点的信息,所以我意识到我需要选择一个javascript 让我的生活更轻松。

socket.io似乎是一个不错的选择,因为它支持多种浏览器和传输机制,但是通过阅读他们的示例,它似乎只能与node.js?

那么,有谁知道是否可以使用socket.iowith twisted.web?如果是这样,任何好的示例/教程的链接也将受到欢迎。

0 投票
1 回答
500 浏览

python - 扭曲的简单 HTTP 代理(续)

我在这个网站上找到了这个脚本:

如您所见,我覆盖 dataReceived 方法来打印数据。这在运行时将每个请求的标头打印到标准输出:

  1. 是否可以以这种方式(或任何其他实现)覆盖它,我可以将接收到的数据(标题)作为字典访问,(例如:data['Host'] = 'xxxx' ...)
  2. 而且我想从此页面获取所有网址。
0 投票
1 回答
2501 浏览

twisted - 扭曲的http服务器错误

我正在使用 python twisted 模块来拦截标头。我有以下脚本:

当我使用 web 浏览器的 localproxy 运行它时(这个 URL)给我这个错误:

但它继续工作,谁能解释这个错误,我该如何解决?

0 投票
1 回答
815 浏览

python - Twisted web - 在finish()之后调用write()?

我有以下资源来处理带有扭曲网络的 http POST 请求:

我使用 ab 工具(来自 apache utils)一个接一个地测试 5 个 POST 请求:

工作正常!

然后我尝试同时运行相同的 5 个 POST 请求:

在这里我收到错误: exceptions.RuntimeError: Request.write 在调用 Request.finish 后调用请求。我究竟做错了什么?

0 投票
3 回答
1230 浏览

python - Apache 背后的 Twisted Web - 如何更正链接?

我正在尝试使用 Python 的 Twisted 框架编写一个 Web 应用程序。如果作为独立服务器(ala twistd)运行,或者如果 Apache 反向代理它,我希望应用程序能够工作。例如

阿帕奇https://example.com/twisted/ --> https://internal.example.com/

在做了一些研究之后,似乎我需要使用 vhost.VHostMonsterResource 来完成这项工作。因此,我使用以下指令设置了 apache:

这是我的基本 SSL 服务器:

它几乎可以工作——但是当使用 apache 作为反向代理时,索引页面上的“文件”链接的行为并不像我想要的那样,因为它是一个绝对链接。

我的主要问题是,除了使用相对链接之外,是否有某种方法可以计算链接的完整 URL 路径应该是什么,以使链接仍然可以在独立服务器模式下工作?第二个问题是,我是否正确使用了 VHostMonsterResource?我没有找到太多文档,我从网上找到的示例中拼凑了我的代码。

0 投票
1 回答
591 浏览

python - Twisted web - 在响应客户端后保留请求数据

我有一个用 Twisted Web 编写的前端 Web 服务器,它与另一个 Web 服务器连接。客户端将文件上传到我的前端服务器,然后将文件发送到后端服务器。我想接收上传的文件,然后在将文件发送到后端服务器之前立即向客户端发送响应。这样,客户端不必等待两个上传都发生后才能得到响应。

我试图通过在单独的线程中开始上传到后端服务器来做到这一点。问题是,在向客户端发送响应后,我不再能够从Request对象访问上传的文件。这是一个例子:

当我尝试这个时,我得到一个错误:I/O operation on closed file