这是我服务器的代码。
import os
from twisted.internet.protocol import Protocol, Factory
from twisted.internet import reactor
class IphoneChat(Protocol):
def connectionMade(self):
#self.transport.write("""connected""")
self.factory.clients.append(self)
print "client connected"
def connectionLost(self, reason):
self.factory.clients.remove(self)
print "client disconnected"
def dataReceived(self, data):
print "data is ", data
for c in self.factory.clients:
c.message(data)
def message(self, message):
self.transport.write(message + '\n')
factory = Factory()
factory.protocol = IphoneChat
factory.clients = []
ON_HEROKU = os.environ.get('ON_HEROKU')
if ON_HEROKU:
# get the heroku port
port = int(os.environ.get('PORT', 17995))
else:
port = 3000
print "Iphone Chat server started on port: "
print port
reactor.listenTCP(port, factory)
reactor.run()
代码在本地完美运行,为自己测试。只需通过端口3000上的本地主机创建telnet通信,您就可以无缝地发送和接收数据。
然而,一旦我将此代码推送到heroku并运行服务器,服务器就会运行并打印出它正在侦听的端口,但是当我尝试创建与服务器的连接并发送数据时,它就不会这样做。似乎接收客户端连接或发送和接收数据。
任何人都可以解决这个问题吗?
答案 0 :(得分:0)
我无法发表评论(代表不够),但我认为您无法正确连接到自己的应用。通常连接到您连接到http://<appname>.herokuapp.com
的heroku应用。由于heroku的路由系统的工作原理,我认为您无法直接连接到您的应用。