在Azure网站上运行Twisted

时间:2015-02-20 01:10:44

标签: twisted azure-web-sites twisted.web

Azure网站可以托管Twisted应用程序吗?例如类似的东西:

from twisted.internet import reactor
from twisted.web import server

site = server.Site(myresource)
reactor.listenTCP(80, site)
reactor.run()

来自http://azure.microsoft.com/en-us/documentation/articles/web-sites-python-configure/听起来只支持WSGI应用,但只是想从Azure网站专家那里确认无法直接运行上述内容。

-

在#twisted.web IRC频道中与Glyph(Twisted作者)讨论的摘录涵盖了此问题的Twisted部分:

16:53:28 glyph: twisted has a WSGI _container_
16:53:34 glyph: twisted _is not_ a WSGI application
16:53:36 glyph: in any part
16:53:43 glyph: so you can't make twisted into a WSGI app
16:53:55 glyph: you can maybe invoke some Twisted code _from_ a WSGI app
16:54:05 glyph: but what that example is doing is speaking HTTP, and WSGI applications have to speak WSGI, they are not allowed to speak HTTP directly.
16:56:47 tos9: crochet?
16:56:56 glyph: tos9: crochet can't eat the inbound HTTP socket
16:56:58 glyph: tos9: so it doesn't help
16:57:11 glyph: you could write a thing that did the _outgoing_ traffic with Twisted, but since you can't handle the inbound request, you're bummed
16:57:37 glyph: basically Twisted's job is doing network I/O and if you're inside a WSGI stack, someone else is already doing the job of doing the network I/O

如果实际上没有办法直接运行这样的东西,那么选择Python以外的语言似乎会为Azure网站带来更大的灵活性。例如,从http://azure.microsoft.com/en-us/documentation/articles/web-sites-nodejs-develop-deploy-mac/开始,您可以在Azure网站上托管一个直接说HTTP的节点应用程序。感激地收到了确认或更正。

3 个答案:

答案 0 :(得分:2)

请检查https://social.msdn.microsoft.com/Forums/en-US/ed1c80c4-4621-4d02-8902-6ecc1166ac8c/running-twisted-on-azure-websites?forum=windowsazurewebsitesprevie&prof=required以获取答案。

正如您在Running Twisted on Azure Websites中所描述的那样。

你说的是对的。对于node.js,您可以在Azure网站上托管一个直接说HTTP的节点应用程序。请参阅http://blogs.msdn.com/b/hanuk/archive/2012/05/05/top-benefits-of-running-node-js-on-windows-azure.aspx

对于Python,没有直接通过http运行twiisted代码的方法。

答案 1 :(得分:0)

是的,它可以。他们的main page

  

Azure支持任何操作系统,语言,工具和框架 - 从Windows到Linux,从SQL Server到Oracle,从C#到Java。

您引用的页面显示了一个基本模板 - 它是如何设置特定WSGI应用程序的示例。你不必这样做。

您可以设置虚拟机并在其上添加任何内容。

答案 2 :(得分:-1)

如果Twisted不需要安装任何特定的二进制文件(没有注册表项,硬编码路径要求等),那么您只需将相关的二进制文件复制到您的网站上,然后调用这些二进制文件。