Ejemplo n.º 1
0
   def __init__(self, factory, config, templates):
      """
      Ctor.

      :param factory: WAMP session factory.
      :type factory: An instance of ..
      :param config: Crossbar transport configuration.
      :type config: dict 
      """
      options = config.get('options', {})

      server = "Crossbar/{}".format(crossbar.__version__)
      externalPort = options.get('external_port', None)

      WampWebSocketServerFactory.__init__(self,
                                          factory,
                                          url = config.get('url', None),
                                          server = server,
                                          externalPort = externalPort,
                                          debug = config.get('debug', False))

      ## transport configuration
      self._config = config

      ## Jinja2 templates for 404 etc
      self._templates = templates

      ## cookie tracking
      if 'cookie' in config:
         self._cookies = {}

      ## set WebSocket options
      set_websocket_options(self, options)
Ejemplo n.º 2
0
    def __init__(self, factory, *args, **kwargs):
        self._connection_count = 0
        self._timeout = kwargs['timeout']
        self._reaper = reactor.callLater(self._timeout, lambda: reactor.stop())

        del kwargs['timeout']
        WampWebSocketServerFactory.__init__(self, factory, *args, **kwargs)
        WampWebSocketServerFactory.protocol = TimeoutWampWebSocketServerProtocol
Ejemplo n.º 3
0
Archivo: wamp.py Proyecto: gchoi/VTK
    def __init__(self, factory, *args, **kwargs):
        self._connection_count = 0
        self._timeout = kwargs['timeout']
        self._reaper = reactor.callLater(self._timeout, lambda: reactor.stop())

        del kwargs['timeout']
        WampWebSocketServerFactory.__init__(self, factory, *args, **kwargs)
        WampWebSocketServerFactory.protocol = TimeoutWampWebSocketServerProtocol
Ejemplo n.º 4
0
    def __init__(self, factory, cbdir, config, templates):
        """
        Ctor.

        :param factory: WAMP session factory.
        :type factory: An instance of ..
        :param cbdir: The Crossbar.io node directory.
        :type cbdir: str
        :param config: Crossbar transport configuration.
        :type config: dict
        """
        self.debug = config.get('debug', False)
        self.debug_traffic = config.get('debug_traffic', False)

        options = config.get('options', {})

        server = "Crossbar/{}".format(crossbar.__version__)
        externalPort = options.get('external_port', None)

        # explicit list of WAMP serializers
        #
        if 'serializers' in config:
            serializers = []
            sers = set(config['serializers'])

            if 'json' in sers:
                # try JSON WAMP serializer
                try:
                    from autobahn.wamp.serializer import JsonSerializer
                    serializers.append(JsonSerializer())
                except ImportError:
                    print("Warning: could not load WAMP-JSON serializer")
                else:
                    sers.discard('json')

            if 'msgpack' in sers:
                # try MsgPack WAMP serializer
                try:
                    from autobahn.wamp.serializer import MsgPackSerializer
                    serializers.append(MsgPackSerializer())
                except ImportError:
                    print("Warning: could not load WAMP-MsgPack serializer")
                else:
                    sers.discard('msgpack')

            if not serializers:
                raise Exception("no valid WAMP serializers specified")

            if len(sers) > 0:
                raise Exception("invalid WAMP serializers specified: {}".format(sers))

        else:
            serializers = None

        WampWebSocketServerFactory.__init__(self,
                                            factory,
                                            serializers=serializers,
                                            url=config.get('url', None),
                                            server=server,
                                            externalPort=externalPort,
                                            debug=self.debug,
                                            debug_wamp=self.debug)

        # Crossbar.io node directory
        self._cbdir = cbdir

        # transport configuration
        self._config = config

        # Jinja2 templates for 404 etc
        self._templates = templates

        # cookie tracking
        if 'cookie' in config:
            if 'database' in config['cookie']:
                dbfile = os.path.abspath(os.path.join(self._cbdir, config['cookie']['database']))
                self._cookiestore = PersistentCookieStore(dbfile, config['cookie'])
                log.msg("Persistent cookie store active: {}".format(dbfile))
            else:
                self._cookiestore = CookieStore(config['cookie'])
                log.msg("Transient cookie store active.")
        else:
            self._cookiestore = None

        # set WebSocket options
        set_websocket_options(self, options)
Ejemplo n.º 5
0
    def __init__(self, factory, cbdir, config, templates):
        """
      Ctor.

      :param factory: WAMP session factory.
      :type factory: An instance of ..
      :param cbdir: The Crossbar.io node directory.
      :type cbdir: str
      :param config: Crossbar transport configuration.
      :type config: dict 
      """
        self.debug = config.get('debug', False)
        self.debug_traffic = config.get('debug_traffic', False)

        options = config.get('options', {})

        server = "Crossbar/{}".format(crossbar.__version__)
        externalPort = options.get('external_port', None)

        ## explicit list of WAMP serializers
        ##
        if 'serializers' in config:
            serializers = []
            sers = set(config['serializers'])

            if 'json' in sers:
                ## try JSON WAMP serializer
                try:
                    from autobahn.wamp.serializer import JsonSerializer
                    serializers.append(JsonSerializer())
                except ImportError:
                    print("Warning: could not load WAMP-JSON serializer")
                else:
                    sers.discard('json')

            if 'msgpack' in sers:
                ## try MsgPack WAMP serializer
                try:
                    from autobahn.wamp.serializer import MsgPackSerializer
                    serializers.append(MsgPackSerializer())
                except ImportError:
                    print("Warning: could not load WAMP-MsgPack serializer")
                else:
                    sers.discard('msgpack')

            if not serializers:
                raise Exception("no valid WAMP serializers specified")

            if len(sers) > 0:
                raise Exception(
                    "invalid WAMP serializers specified: {}".format(sers))

        else:
            serializers = None

        WampWebSocketServerFactory.__init__(self,
                                            factory,
                                            serializers=serializers,
                                            url=config.get('url', None),
                                            server=server,
                                            externalPort=externalPort,
                                            debug=self.debug,
                                            debug_wamp=self.debug)

        ## Crossbar.io node directory
        self._cbdir = cbdir

        ## transport configuration
        self._config = config

        ## Jinja2 templates for 404 etc
        self._templates = templates

        ## cookie tracking
        if 'cookie' in config:
            if 'database' in config['cookie']:
                dbfile = os.path.abspath(
                    os.path.join(self._cbdir, config['cookie']['database']))
                self._cookiestore = PersistentCookieStore(
                    dbfile, config['cookie'])
                log.msg("Persistent cookie store active: {}".format(dbfile))
            else:
                self._cookiestore = CookieStore(config['cookie'])
                log.msg("Transient cookie store active.")
        else:
            self._cookiestore = None

        ## set WebSocket options
        set_websocket_options(self, options)
Ejemplo n.º 6
0
   def __init__(self, factory, config, templates):
      """
      Ctor.

      :param factory: WAMP session factory.
      :type factory: An instance of ..
      :param config: Crossbar transport configuration.
      :type config: dict 
      """
      options = config.get('options', {})

      server = "Crossbar/{}".format(crossbar.__version__)
      externalPort = options.get('external_port', None)

      ## explicit list of WAMP serializers
      ##
      if 'serializers' in options:
         serializers = []
         sers = set(options['serializers'])

         if 'json' in sers:
            ## try JSON WAMP serializer
            try:
               from autobahn.wamp.serializer import JsonSerializer
               serializers.append(JsonSerializer())
            except ImportError:
               print("Warning: could not load WAMP-JSON serializer")
            else:
               sers.discard('json')

         if 'msgpack' in sers:
            ## try MsgPack WAMP serializer
            try:
               from autobahn.wamp.serializer import MsgPackSerializer
               serializers.append(MsgPackSerializer())
            except ImportError:
               print("Warning: could not load WAMP-MsgPack serializer")
            else:
               sers.discard('msgpack')

         if not serializers:
            raise Exception("no valid WAMP serializers specified")

         if len(sers) > 0:
            raise Exception("invalid WAMP serializers specified: {}".format(sers))

      else:
         serializers = None

      WampWebSocketServerFactory.__init__(self,
                                          factory,
                                          serializers = serializers,
                                          url = config.get('url', None),
                                          server = server,
                                          externalPort = externalPort,
                                          debug = config.get('debug', False))

      ## transport configuration
      self._config = config

      ## Jinja2 templates for 404 etc
      self._templates = templates

      ## cookie tracking
      if 'cookie' in config:
         self._cookies = {}

      ## set WebSocket options
      set_websocket_options(self, options)