问题标签 [twisted.client]

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 投票
1 回答
656 浏览

twisted - AutobahnPython w/Twisted:websocket.WampWebSocketClientFactory 上的 ssl.optionsForClientTLS

我无法使用“applicationRunner”,因为它不支持 websockets 的自动重新连接(GitHub 问题:#295 #389)。我已经恢复到使用扭曲的“ReconnectingClientFactory”的已弃用方法。我的问题是这种方法似乎不允许我添加“ssl.optionsForClientTLS”来严格验证服务器主机名和证书。有没有办法做到这一点?

非常感谢任何反馈!

0 投票
0 回答
126 浏览

python - 如何在 windows 上从 twisted 安装 python 补丁?

我想为twisted 安装一个python 补丁,它允许我通过控制台(stdio)输入数据。请帮我如何使用这个补丁

这是链接 - https://twistedmatrix.com/trac/ticket/2157

0 投票
1 回答
1198 浏览

python - 发出 GET 请求,然后使用 Python (Twisted) 打印出响应正文

在 Twisted 的网站上,他们有一个名为“接收响应”的示例,它向您展示了如何获取响应标头和响应代码,但不包括响应正文(请求返回到网站的实际 HTML 正文)。

在 def cbrequest(response) 中,如何将 GET 请求返回给 example.com 的 HTML 文本打印出来?他们展示了 response.headers 之类的方法来获取标题,但我还没有看到返回前端正文的方法。

http://twistedmatrix.com/documents/12.1.0/web/howto/client.html#auto9

编辑:我尝试打印 response.deliverBody(BeginningPrinter(finished)) 来获取响应文本,但无济于事

0 投票
1 回答
384 浏览

python - 如何发出 GET 请求,然后使用 Python (Twisted) 打印出响应正文

在 Twisted 的网站上,他们有一个名为“接收响应”的示例,它向您展示了如何获取响应标头和响应代码,但不包括响应正文(请求返回到网站的实际 HTML 正文)。

在 def cbrequest(response) 中,如何将 GET 请求返回给 example.com 的 HTML 文本打印出来?他们展示了 response.headers 之类的方法来获取标题,但我还没有看到返回前端正文的方法。

我尝试打印 response.deliverBody(BeginningPrinter(finished)) 以获取响应文本,但无济于事

http://twistedmatrix.com/documents/12.1.0/web/howto/client.html#auto9

0 投票
0 回答
108 浏览

python - 如何从与他不同的文件中调用 Twisted reactor?

我有一个很可能属于 Twisted 或可能与 Python 直接相关的问题。

我的问题,另一个与 Twisted 中的断开连接过程有关。正如我在本网站上所读到的,如果我愿意,我必须执行以下步骤:

  1. 服务器必须停止监听。
  2. 客户端连接必须断开。
  3. 服务器连接必须断开。

根据我在上一页上阅读的内容,第一步必须运行该stopListening方法。

在网络中提到的示例中,所有操作都在同一个脚本中执行。使访问不同的变量和方法变得容易。

对我来说,我有一个服务器,一个客户端位于不同的文件和不同的位置。

我有一个创建服务器并分配协议的函数,并希望从另一个文件中的客户端协议对停止连接器的方法进行 AMP 调用。

call AMP 调用 SendMsg 命令。

CredAMPServerFactory 类分配相应的协议。

在“CredReceiver”类中,我有一个将协议分配给 TestServer 类的调用。我这样做是为了使用 AMP 方法“响应程序”进行调用。

我的问题是,当我进行调用时,程序会响应错误,指示连接器不属于 CredReceiver 属性对象。

我怎么能这样做?有谁知道类似的例子可能会注意到?

谢谢你。

编辑。

服务器端:

server_amp.py

  1. 启动一个反应器:reactor.listenSSL(1234, pf, contextFactory = sslContext,)从 SATNETServer 类中。

  2. 也从 SATNETServer 类中将协议分配pfCredAMPServerFactory属于模块 server.py 的类。

服务器.py

  1. 在类内将类CredAMPServerFactory分配CredReceiver给协议。
  2. 一旦建立连接,就会将类SATNETServer分配给协议。

客户端:

客户端放大器

  1. 调用SendMsg属于SATNETServer该类的方法。
0 投票
2 回答
200 浏览

python - 来自库函数的扭曲客户端调用

我正在尝试实现一个充当 Twisted 客户端的功能。它是从我无法控制的代码中调用的。我尝试了类似的东西(这取自 pbsimpleclient.py 示例代码):

来电者会拨打如下电话:

但正如您可能已经猜到的那样,它给出了“twisted.internet.error.ReactorNotRestartable”错误。

最好的方法是什么?我不太担心从远程端得到响应,但我应该知道它是否失败以及为什么。

0 投票
1 回答
293 浏览

python - 启动和停止 Twisted 连接

我正在编写使用 python Twisted API 的应用程序(即WebSocketClientProtocol, WebSocketClientFactory, ReconnectiongClientFactory。我想将客户端工厂包装到具有以下接口的阅读器中

Start 函数将用于打开连接(即在 ws api 上连接并开始读取数据),同时stop将停止此类连接。

我的问题是,如果我使用reactor.run()inside start,连接开始并且一切正常,但是我的代码永远不会通过该行(看起来像阻止对我的调用)并且我无法执行后续行(包括.stop在我的测试中)。

我尝试过使用变体,例如reactor.callFromThread(reactor.run)甚至reactor.callFromThread(reactor.stop)是 excplicity 调用Thread(target=...),但似乎都没有工作(它们通常根本不构建协议或打开连接)。

欢迎任何有关如何实施的帮助或Reader.start指南Reader.stop

0 投票
0 回答
80 浏览

python - 在 python twisted 中映射请求响应

我已经开始学习 Python twisted。我有一个基本要求来映射 TCP 客户端的请求和响应。客户端可以根据某些条件随时发送任何请求,并且它期望来自服务器的该请求的特定响应。我如何映射请求-响应对。我想要的示例代码。此外,服务器可以发送不映射到任何客户端请求的任意消息。

0 投票
1 回答
37 浏览

python - 连接失败后,Twisted 继续阻塞

我正在开发一个使用 Python Twisted 模块的相对简单的项目。它似乎运行良好,除非客户端的连接失败(我故意没有启动主机服务器来解决这个问题)它继续阻塞并且程序永远不会完成。

这是我正在尝试做的一个简化示例,它复制了这个问题:

结果是程序打印出“连接失败!” 如您所料(只要主机没有运行)。但是当连接失败时,代码永远不会完成。它继续阻塞。我该如何阻止它?

我在网上查看了替代异步方法(如 reactor.callInThread 和 reactor.callFromThread)。我试过“deferToThread”。但无论如何,客户端似乎永远不会在连接失败后停止阻塞。

0 投票
0 回答
154 浏览

python - 如何在查询回调中从 python twisted.names defer 返回 DNS 查找?

我需要一些帮助来理解 python Twisted DNS Resolver。我正在尝试创建一个充当 DNS 转发器的 dns 服务器。我想接受查找,将查询转发到 8.8.8.8,返回来自 8.8.8.8 的响应,然后执行一些功能,例如比较坏的 ip 列表,知道坏的域等。这是我卡住的地方,
(顺便说一句,我在另一个线程中问了另一个关于 DNS 返回 SOA 的问题。从那以后,我一直被困在我在这里问的另一个问题上。这个问题更多地涉及到扭曲的方面,并在这里打开了一个新问题)

我在 UDP 5553 上为传入请求构建了一个反应器列表,获取请求,执行查找,但不知道如何将查找返回给请求者。这是我创建的:

所以当一个请求进来时,它会命中def query(self, query, timeout=None)。Query 解析查找并需要延迟回调,因此我将回调传递给_ProcessesARecord(self, ip, query). 我有我试图返回的虚拟测试数据,所以我建立了回报然后呢?在其他示例中,他们调用 adefer.succeed但我收到错误

我如何从回调返回(dns.RRHeader(name=name, type=dns.A, cls=dns.IN, payload=dns.Record_A(address=addr)),), (), ()到初始请求者?

感谢您抽出宝贵的时间。