2

我正在尝试学习 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 连接到一个随机端口,我怎么知道它将我的应用程序连接到哪个端口?谢谢。

4

2 回答 2

3

我对 Twisted 不是很熟悉,但我不确定 Heroku 是否支持您尝试做的事情。Heroku 目前只支持 HTTP[S] 请求,不支持原始 TCP。这个问题的答案中有更多细节。

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

于 2013-01-25T18:53:10.683 回答
0

“Cedar 完全支持纯 Python 应用程序,例如无头进程和事件 Web 框架(如 Twisted)。”

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

于 2013-02-16T17:30:23.720 回答