簡體   English   中英

為什么我的服務器在本地運行,而不在heroku上運行?

[英]Why is my server working locally, but not on heroku?

這是我的服務器的代碼。

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並運行服務器,服務器就會運行並打印出它正在偵聽的端口,但是當我嘗試創建與服務器的連接並發送數據時,它似乎並沒有接收到該信息。客戶端已連接或發送和接收數據。

誰能解決這個問題?

我無法發表評論(代表人數不足),但我認為您未正確連接到您的應用。 通常,要連接到heroku應用程序,您需要連接到http://<appname>.herokuapp.com 由於heroku的路由系統的工作原理,我認為您不能直接連接到您的應用程序。

參見https://devcenter.heroku.com/articles/http-routing

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM