问题标签 [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 投票
1 回答
489 浏览

python - 从 twisted.web 构建一个彗星服务器,用于一个 twisted.web 站点

所以我已经建立了一个网站,我需要一个用于聊天应用程序的彗星服务器。该站点是用twisted.web 构建的,我也想用twisted 构建彗星服务器,因为我已经有点熟悉它了。

但我不知道该怎么做。我已经看过这篇文章并理解了代码片段中的机制——但我试过了,页面需要 AGES 才能加载,当它加载时,它已经充满了时间,然后继续添加它们。

我对它如何工作的想法是,我会将它作为一个单独的进程运行,然后在另一个上运行我的扭曲站点。扭曲站点中的页面将对彗星服务器进行 ajax 调用,该服务器将等待响应。但是该响应会像页面加载那样需要很长时间才能返回吗?

彗星服务器如何最好地从网站服务器获取数据?它不仅会轮询网站,或者我也可能没有彗星服务器——我是否会在彗星服务器的 GET 处理程序中放置一个无限循环,让网站调用它并中断?彗星服务器和网站将如何共享数据?比如,comet 服务器如何知道用户会话数据的任何信息——他们是谁,他们在等待什么,它可以发送给他们什么?

另外,我不确定这一点,但我是否必须将线程合并到彗星服务器中,还是已经是多线程的?

0 投票
2 回答
203 浏览

python - 设计网站 api 的接口

好的,我正在编写一种与 Grooveshark ( http://grooveshark.com ) 交互的方法。现在我有一个 Grooveshark 类和几个方法,一个获取与服务器的会话,另一个获取基于会话的令牌,另一个用于构造对服务器的 api 调用(其他方法使用它)。现在我像这样使用它....注意在twisted中使用twisted和tidefer

即使在初始化类之后,我也发现这种不合常理和丑陋的感觉你必须先调用两个方法,否则其他方法将不起作用。为了解决这个问题,我试图得到它,以便创建 api 调用的方法负责会话和令牌。目前这两种方法(会话和令牌方法)设置类变量并且不返回任何内容(以及无)。所以我的问题是,在与需要令牌和会话的网站交互时是否使用了通用设计?此外,令牌和会话是从服务器检索的,因此我不能让它们在init方法中运行(因为它会阻塞或在进行 api 调用之前可能不会完成)

0 投票
1 回答
1129 浏览

python - Python Twisted 框架 HTTP 客户端

我想用 Python 编写一个简单的 SSL HTTP 客户端,并且听说过 Twisted 框架。

我需要能够使用 REST 服务进行身份验证 - 所以我想我只需将用户名和密码发布到目标服务器。假设身份验证成功,客户端将收到一个 cookie。

基于 Twisted 构建的 HTTP 客户端会自动为每个后续请求重新发送 cookie 标头,还是我需要做一些特别的事情?我以前从未使用过 Twisted。

谢谢

0 投票
1 回答
780 浏览

python - Twisted HTTP 代理通道在 LostConnection 上设置为 None 但尚未调用 lostConnection

好的,我一直在编写一个代理来接受 http GET 请求并将它们转换为 HTTP POST 请求(因为很多用于 python 的媒体播放器只支持 GET)。所以我知道正在缓存这些结果,我只下载一次 url,我将很多代码从超类移动到子类并更改它,以便我可以将相同的东西发送到多个服务器连接(例如,如果建立了服务器连接,如果可用,我会将其附加到下载实例)。

无论如何,除了最后一部分之外,它大部分都可以工作,由于某种原因,在我调用 lostConnection 之前 http 通道设置为 None (这没有任何错误,如互联网出去等),这会导致 None 对象没有属性传输的错误我正在调用 lostConnection 。

这是代码

并且 self.channel 的回溯设置为 none(每个setattr调用上的回溯模块的 print_stack)

注意:看看最后几行,我认为这就是问题所在。

这是我得到的无属性异常

0 投票
1 回答
124 浏览

apache - 对高度可扩展和模块化的分布式服务器端架构的思考

我的并不是一个真正的问题,它更多的是征求意见 - 也许这甚至不是发布它的正确位置。不过,这里的社区消息灵通,尝试一下也无妨……

我正在考虑如何创建一个高度可扩展的,尤其是高度模块化的后端架构。例如,一个大型站点的整个后端生态系统,它有可能在未来发展成一个大型站点。

这将需要非常高度的关注点分离,以至于不仅可以(例如)替换底层数据库(即从 Oracle 到 MySQL),而且可以替换实际类型的数据库(ed SQL 到 KV,或反之亦然)。

我设想每个子系统在后端生态系统中公开自己的 API 的情况。通过这种方式,API 可以保持不变,而实现可能会随着时间而改变(甚至是根本性的)。

系统必须是异构的,因为它不依赖于特定的语言。它必须能够容纳使用不同语言的模块或整个子系统。

然后我突然想到,我想象的只是网络本身的架构。

所以这是我的讨论点:除了使用(主要)基于文本的协议的开销之外,是否有任何压倒一切的原因不应该以我描述的方式实现复杂的后端架构,或者我是否有一些强有力的理由使用 Twisted、AMQP、Thrift 等通信协议时缺少 m?

更新:在@meagar 发表评论之后,我或许应该重新提出这个问题:使用非常简单、灵活且易于理解的架构(即所有功能公开为一系列 RESTful API)的明显优势是否足以弥补明显的性能损失在后端上下文中使用此架构时会发生什么?

0 投票
1 回答
2784 浏览

python - 编写出色的 Twisted Web 资源

我编写了我的第一个 Twisted 10.1.0 网络Resource并且我正在寻求反馈,因为我觉得这并不完全遵循最佳实践并且可能包含新手错误。

资源响应/?url=http://www.foo.baz/abc123并依赖于返回dict. 如果出现任何问题(例如,无效或不存在url,则400返回 a)。

任何意见?有什么要解决的,要改进的

0 投票
1 回答
1056 浏览

python - 覆盖来自 Twisted.web 的所有默认资源/响应

对于一个超基本的 http 扭曲前端。除非我告诉它,否则我如何确保没有 html 被写回。

所以,我在下面有我的 /zoo 网址。对于任何回溯或“无此类资源”响应,我只想断开连接或返回空响应。

我想这是一个超级简单的,但无法弄清楚:) 我知道我可以通过没有我的特定子路径来做到这一点,但想要高效地做到这一点,只想尽早放弃它..也许不使用资源?

0 投票
2 回答
8273 浏览

python - Twisted 和 Websockets:超越 Echo

在我对 websockets 的持续好奇中,我注意到了一个趋势:

websocket 世界的“hello world”,至少目前,似乎是“echo”功能。也就是说,演示的应用程序通常是“我发送一些东西,我接收一些东西”。

虽然恰当地证明了该协议是有效的,但这个例子实际上只演示了传统请求/响应周期所支持的相同类型的通信。

例如,我能找到的 twisted.web.websockets 的唯一演示(在服务器端)如下:

我怎样才能在这里检查“推送”功能?即,我怎样才能让 web socket 保持打开状态,然后在某个时间由某个事件的发生确定,通过 websocket 发送消息,其内容也受此事件影响?

(对这个问题感兴趣的人也可能认为我前几天问的这个问题很有说服力:Making move w/websockets and python/django (/twisted?)

0 投票
1 回答
2785 浏览

python - Python Twisted 客户端连接丢失

我有这个扭曲的客户端,它与具有索引的扭曲服务器连接。我从命令行运行了这个客户端。它工作得很好。现在我将它修改为循环运行(请参阅 参考资料main()),以便我可以继续查询。但是客户端只运行一次。下次它只是说connection lost \n Connection lost - goodbye!

我究竟做错了什么?在循环中我重新连接到服务器,这是错误的吗?

0 投票
2 回答
2708 浏览

python - Python 扭曲的守护进程

我写了一个简单的扭曲服务器 -

这在127.0.0.1:8090. 请注意,这在终端(前台)中运行,当我使用nohup&使进程在后台运行时ctrl+Z。服务器不响应请求。我应该怎么做才能守护这个扭曲的服务器