【问题标题】:Want to use Twisted web server on Heroku想在 Heroku 上使用 Twisted Web 服务器
【发布时间】:2017-03-03 02:04:19
【问题描述】:

我是 Twisted Web 服务器和 Heroku 的新手。

我想在 Heroku 上使用 Twisted Web 服务器

我使用这样的客户端代码

from twisted.internet import protocol, reactor
import os
class Knock(protocol.Protocol):
    def dataReceived(self, data):
        print 'Client:', data
        if data.startswith("Hey, Heroku!"):
            response = "Hi, please wait..."
            self.transport.write(response)
        else:
            response = "I don't know who you are!"
            self.transport.write(response)
        
class KnockFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Knock()

reactor.listenTCP(5000, KnockFactory())
reactor.run()

如何在 Heroku 上连接服务器?

2017/3/19 更新

我用例子从Python and Django on Heroku修改

我在代码中设置了端口:5000,但返回的端口是打开应用程序时随机返回的。

我仍然无法连接 Heroku 上的服务器。 :(

app.py

import os
from flask import Flask
from twisted.internet import protocol, reactor
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello from Python Twisted ! Heroku server started on port: %s" % port

class Knock(protocol.Protocol):
    def dataReceived(self, data):
        return "Client:", data
        if data.startswith("Hey, Heroku!"):
            response = "Hi, please wait..."
            self.transport.write(response)
        else:
            response = "I don't know who you are!"
            self.transport.write(response)

class KnockFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Knock()
        
if __name__ == "__main__":
    port = int(os.environ.get("PORT", 5000))
    app.run(host='0.0.0.0', port=port)
    reactor.listenTCP(port, KnockFactory())
    reactor.run()

【问题讨论】:

  • @JohnZwinck 你能帮帮我吗?

标签: python heroku twisted twisted.web


【解决方案1】:

Heroku 使用环境变量告诉您​​要监听的端口。

您应该在int(os.environ["PORT"]) 上收听,而不是硬编码端口8080

【讨论】:

  • 对不起...我不明白你的意思。你的意思是我必须在heroku上设置环境变量,不是吗?
  • 您知道“应用程序崩溃”的原因吗?我去Heroku Error Codes查看我的错误,但我不知道如何解决这个错误。
  • 可能有一些语法错误?您问题的代码中有一些语法错误。如果您问题中的代码与您在 Heroku 上运行的代码不同,我无法确定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 2019-09-27
  • 2013-06-19
相关资源
最近更新 更多