2017-03-03 3 views
0

Je suis nouveau pour le serveur web Twisted et Heroku.Vous voulez utiliser le serveur web Twisted sur Heroku

Je veux utiliser le serveur web Twisted sur Heroku

J'utilise le code client comme celui-ci

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() 

Comment puis-je faire pour se connecter au serveur sur Heroku?

mise à jour 2017/3/19

Je donne l'exemple de modifier de Python and Django on Heroku

Je mis le port: 5000 dans mon code, mais le port est retourné au hasard de openning l'application.

Je n'arrive toujours pas à connecter le serveur sur 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() 
+0

@ JohnZwinck Pouvez-vous m'aider? – soysoy

Répondre

0

Heroku vous indique quel port d'écoute en utilisant une variable d'environnement.

Vous devriez écouter sur int(os.environ["PORT"]) au lieu du port coder en dur 8080.

+0

Désolé ... Je ne sais pas ce que vous voulez dire Vous voulez dire que je dois définir la variable d'environnement sur heroku, n'est-ce pas? – soysoy

+0

"App crashé" dans votre mise à jour semble important –

+0

Do tu h avez-vous une idée de pourquoi "App s'est écrasé"? Je suis allé regarder mon erreur dans [Codes d'erreur Heroku] (https://devcenter.heroku.com/articles/error-codes#r10-boot-timeout), mais je ne sais pas comment résoudre l'erreur. – soysoy