Heroku与Twisted

2 投票
2 回答
1348 浏览
提问于 2025-04-17 13:40

我正在学习Twisted,这是一个Python框架。我想把一个简单的应用程序放到网上,这个应用程序收到消息后会把它发回去。我决定使用Heroku来托管这个应用,并且我按照他们的文档进行了操作。

import os
from twisted.internet import protocol, reactor

class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

class EchoFactory(protocol.Factory):
    def buildProtocol(self, addr):
        return Echo()

port = int(os.environ.get('PORT', 5000))
reactor.listenTCP(port, EchoFactory(), interface = '0.0.0.0')
reactor.run()

现在一切都正常,除了(我知道这个问题可能有点傻),我该怎么给它发送消息呢?在本地工作时,我只需要用 telnet localhost <port> 就可以了,但现在我不知道该怎么做。还有,由于Heroku会连接到一个随机端口,我怎么知道我的应用连接到了哪个端口呢?谢谢。

2 个回答

0

“纯Python应用程序,比如那些没有界面的后台进程和像Twisted这样的事件驱动网络框架,在Cedar上是完全支持的。”

参考链接: https://devcenter.heroku.com/articles/python-support

3

我对Twisted不是很熟悉,但我不太确定你想做的事情在Heroku上是否支持。Heroku目前只支持HTTP[S]请求,而不支持原始的TCP连接。关于这方面有更多的细节,可以查看这个问题的回答

如果你想连接到你的应用程序,应该使用 myapp.herokuapp.com 这个主机名,或者你添加的任何自定义域名。

撰写回答