问题标签 [twisted]

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 投票
5 回答
12597 浏览

python - 用于构建 TCP 服务器的好的 Python 网络库?

我只是想知道有哪些网络库可用于 Python 构建 TCP/IP 服务器。我知道 Twisted 可能会跳到我的脑海中,但文档对我来说似乎稀缺、草率和分散。

此外,使用 Twisted 甚至比使用 select.select() 滚动我自己的服务器有好处吗?

0 投票
3 回答
8169 浏览

python - 与 Twitter 交互时,xml、json、rss 和 atom 之间的实际区别是什么?

我是 Web 服务的新手,作为介绍,我正在使用 Python 中的 Twisted 框架来玩转 Twitter API。我已经阅读了他们提供的不同格式,但我仍然不清楚在我相当简单的项目中应该使用哪一种。具体来说,使用 JSON 或 XML 之间的实际区别是我希望得到的指导。我所做的只是请求公共时间线并将其缓存在本地。

谢谢。

0 投票
1 回答
828 浏览

python - Python/Twisted - 发送到特定的套接字对象?

我在一个节点上有一个“管理器”进程,还有几个工作进程。管理器是拥有与客户端的所有连接的实际服务器。管理器接受所有传入的数据包并将它们放入队列中,然后工作进程将数据包从队列中拉出,处理它们并生成结果。他们将结果发送回管理器(通过将它们放入另一个由管理器读取的队列中),但这是我卡住的地方:如何将结果发送到特定的套接字?在单个进程上处理数据包时,这很容易,因为当您收到一个数据包时,您只需在上下文中抓取“传输”对象即可回复它。但是我将如何使用我正在使用的方法来做到这一点?

0 投票
3 回答
3810 浏览

python - Python/Twisted - TCP 数据包碎片?

在 Twisted 中,当实现 dataReceived 方法时,似乎没有任何例子提到数据包被分段。在所有其他语言中,这是您手动实现的,所以我只是想知道这是否已经在扭曲中为您完成了,还是什么?如果是这样,我是否需要在我的数据包前面加上一个长度标头?还是我必须手动执行此操作?如果是这样,那会是什么方式?

0 投票
4 回答
1333 浏览

python - 应用服务器的单元测试

我写了一个应用服务器(使用 python & twisted),我想开始写一些测试。但由于时间限制,我不想使用 Twisted 的试用版,现在没有时间玩它。所以这就是我的想法:编写一个连接到应用服务器并发出必要请求的小型测试客户端(通信协议是一些内部 XML),以静态方式存储接收到的 XML,然后编写一些测试使用 unitest 处理那些静态数据。

我的问题是:这是一种正确的方法吗?如果是,这种方法涵盖了哪些类型的测试?

此外,使用这种方法有几个缺点,例如:无法访问数据库层以构建/重建模式,测试客户端何时连接到服务器:每个单元测试或运行测试套件之前?

0 投票
2 回答
1146 浏览

python - Python/Twisted 多用户服务器 - 什么更有效?

在 Python 中,如果我希望我的服务器在 CPU 方面能够很好地扩展,我显然需要生成多个进程。我想知道哪个更好(使用 Twisted):

A)管理进程(持有实际套接字连接的那个)将接收到的数据包放入一个共享队列(来自多处理模块的那个),工作进程将数据包拉出队列,处理它们并将结果发送回客户端。

B) 管理器进程(持有实际套接字连接的那个)启动一个延迟线程,然后调用进程池上的 apply() 函数。一旦结果从工作进程返回,管理器将结果发送回客户端。

在这两种实现中,工作进程都使用线程池,因此它们可以同时处理多个数据包(因为会有很多数据库查询)。

0 投票
3 回答
1768 浏览

python - Twisted 是否有广泛使用的 STOMP 适配器?

我检查了 stomper,它看起来并不完整。(我对 Python 很陌生)有人在生产环境中使用 stomper 吗?

如果没有,我想我将不得不推出我自己的 Twisted Stomp 适配器。

提前致谢!

0 投票
8 回答
7760 浏览

python - python的httplib的替代品?

我有一个 python 客户端,它通过标准库的 httlib 推送大量数据。用户抱怨应用程序很慢。我怀疑这可能部分是由于我使用的 HTTP 客户端。

我可以通过用其他东西替换 httplib 来提高性能吗?

我已经看到twisted 提供了一个HTTP 客户端。与他们的其他协议产品相比,它似乎非常基础。

PyCurl 可能是一个有效的替代方案,但它的使用似乎非常不符合 Python 风格,另一方面,如果它的性能非常好,那么我可以忍受一些非 Python 风格的代码。

因此,如果您有更好的 Python HTTP 客户端库的经验,请告诉我。我想知道您对 httplib 相关性能的看法以及您对实现质量的看法。

UPDATE 0:我对httplib的使用其实是非常有限的——替换需要做到以下几点:

就是这样:没有代理、重定向或任何花哨的东西。这是普通的 HTTP。我只需要能够尽可能快地做到这一点。

更新 1:我坚持使用 Python2.4,并且正在使用 Windows 32。请不要告诉我使用 httplib 的更好方法 - 我想了解 httplib 的一些替代方案。

0 投票
2 回答
30928 浏览

python - 如何在我的 Python 程序中找到内存泄漏?

可能重复:
Python 内存分析器

我有一个相当复杂(大约 20,000 行)的 Python 程序,经过一些开发后,它在运行时开始消耗越来越多的内存。找出所有内存的用途的最佳工具和技术是什么?

通常这归结为意外保留对对象的引用,或扩展模块错误(这不太可能,因为我们已经使用 Python 2.4 安装一段时间了)。

我们正在使用各种第三方库,例如 Twisted、Twisted Conch 和 MySQLdb。

0 投票
1 回答
1030 浏览

python - 使用 Twisted,“connectionMade”如何触发特定的 Deferred?

这是一个更大计划的一部分;我将仅解释相关部分。基本上,我的代码想要创建到远程主机的新连接。这应该返回一个 Deferred,一旦建立连接就会触发,所以我可以在上面发送一些东西。

我正在与twisted.internet.interfaces.IReactorSSL.connectSSL. 这会调用buildProtocol我的ClientFactory实例来获取一个新的连接 ( twisted.internet.protocol.Protocol) 对象,并返回一个twisted.internet.interfaces.IConnector. 当连接开始时,Twisted 调用startedConnecting工厂,给它一个IConnector. 当实际建立连接时,将调用协议的connectionMade回调,不带任何参数。

现在,如果每个主机/端口只需要一个连接,其余的就很容易了。在调用 之前connectSSL,我会创建一个 Deferred 并将其放入以(主机、端口)为键的字典中。然后,在协议的 connectionMade 中,我可以使用self.transport.getPeer()它来检索主机/端口,用它来查找 Deferred,并触发它的回调。但是,如果我想创建多个连接,这显然会失败。

问题是我看不到任何其他方法可以将我在调用之前创建的 DeferredconnectSSLconnectionMade稍后创建的关联。