2016-04-01 20 views
0

Ich versuche, den Querträger auf einer Remote-Host mit Autobahn [Verdrehte]Anschluss entweder hängt an crossbar.io oder trennt

Ich bin mit einem Code modifizierten Beispiels von PubSub mit Python zu verbinden:

from __future__ import print_function 
from os import environ 
from twisted.internet import reactor 
from twisted.internet.defer import inlineCallbacks 
from autobahn.twisted.wamp import ApplicationSession, ApplicationRunner 

class Component(ApplicationSession): 
    def __init__(self, config=None): 
     ApplicationSession.__init__(self, config) 
     print("component created") 

    def onConnect(self): 
     print("transport connected") 
     self.join(self.config.realm) 

    def onChallenge(self, challenge): 
     print("authentication challenge received") 

    @inlineCallbacks 
    def onJoin(self, details=None): 
     print("session attached") 
     self.received = 0 
     for x in range(1, 501): 
      sub = yield self.subscribe(self.on_event, u'com.myapp.topic{}'.format(x)) 
      if x % 100 == 0: 
       print("Subscribed to {} topics".format(x)) 

    def on_event(self, i=None): 
     print("Got event: {}".format(i)) 
     self.received += 1 
     self.config.extra for configuration, etc. (see [A]) 
     if self.received > self.config.extra['max_events']: 
      print("Received enough events; disconnecting.") 
      self.leave() 

    def onDisconnect(self): 
     print("disconnected") 
     if reactor.running: 
      reactor.stop() 


if __name__ == '__main__': 
    runner = ApplicationRunner(
     url=u"ws://localhost:8080/ws", 
     realm=u"realm1", 
     extra=dict(
      max_events=5000, # [A] pass in additional configuration 
     ), 
    ) 
    print(runner.log) 
    runner.run(Component) 

Ich habe eine Instanz von Crossbar auf meinem localhost zum Testen ausgeführt, und wenn ich darauf zugreifen, funktioniert alles.

2016-04-01T17:26:16+0000 component created 
2016-04-01T17:26:16+0000 transport connected 
2016-04-01T17:26:16+0000 session attached 
(stuff happens here, events get published, until max is reached) 
2016-04-01T17:26:19+0000 Received SIGINT, shutting down. 
2016-04-01T17:26:19+0000 disconnected 
2016-04-01T17:26:19+0000 Main loop terminated. 

Aber wenn ich versuche, auf andere Hosts zu verbinden, werden zwei Dinge passieren: Wenn es ein sicherer Hafen ist:

2016-04-01T17:26:16+0000 component created 
2016-04-01T17:26:16+0000 transport connected 

(die Sitzung nie angebracht wird, Programm hängt)

wenn es eine unsichere Port ist:

2016-04-01T17:26:16+0000 component created 
2016-04-01T17:26:16+0000 transport connected 
2016-04-01T17:26:19+0000 disconnected 
2016-04-01T17:26:19+0000 Main loop terminated. 

(die Verbindung schlägt mich automatica lly bevor die Sitzung verknüpft wird

Der Host, mit dem ich versuche, eine Verbindung herzustellen, hat 8080 für sicheren Port und 8081 für unsicheren. Also alles, was ich ändern ist:

url=u'ws://{hostname}:8080/ws', (or) 
url=u'ws://{hostname}:8081/ws', 

Ich will wissen, ob ich etwas offensichtlich über WAMP Verbindungen fehlt bin oder wenn dies ist wahrscheinlich ein Konfigurationsproblem auf der Crossbar-Instanz ich zu verbinden bin versucht.

Antwort

0

Ich reparierte mein Problem, indem diese mit den folgenden Versionen von Autobahn und verdrehte auf einem virtualenv ausgeführt wird:

autobahn==0.10.2 
Twisted==15.1.0 

Ich weiß nicht, warum die neuesten Versionen auf diese Weise verhalten waren, ich, dass mein Code nur wissen, oben funktioniert nur auf diesen Versionen.