【发布时间】: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