connectors/WAMP/__init__.py
changeset 2472 897687a3c982
parent 2470 590f85412835
child 2492 7dd551ac2fa0
equal deleted inserted replaced
2471:9d5c291b510f 2472:897687a3c982
    25 
    25 
    26 from __future__ import absolute_import
    26 from __future__ import absolute_import
    27 from __future__ import print_function
    27 from __future__ import print_function
    28 import sys
    28 import sys
    29 import traceback
    29 import traceback
       
    30 from functools import partial
    30 from threading import Thread, Event
    31 from threading import Thread, Event
    31 from six import text_type as text
    32 from six import text_type as text
    32 
    33 
    33 from twisted.internet import reactor, threads
    34 from twisted.internet import reactor, threads
    34 from autobahn.twisted import wamp
    35 from autobahn.twisted import wamp
    64     "GetPLCstatus":      (PlcStatus.Broken, None),
    65     "GetPLCstatus":      (PlcStatus.Broken, None),
    65     "RemoteExec":        (-1, "RemoteExec script failed!")
    66     "RemoteExec":        (-1, "RemoteExec script failed!")
    66 }
    67 }
    67 
    68 
    68 
    69 
    69 def WAMP_connector_factory(uri, confnodesroot):
    70 def _WAMP_connector_factory(cls, uri, confnodesroot):
    70     """
    71     """
    71     WAMP://127.0.0.1:12345/path#realm#ID
    72     WAMP://127.0.0.1:12345/path#realm#ID
    72     WAMPS://127.0.0.1:12345/path#realm#ID
    73     WAMPS://127.0.0.1:12345/path#realm#ID
    73     """
    74     """
    74     scheme, location = uri.split("://")
    75     scheme, location = uri.split("://")
    86         component_config = types.ComponentConfig(
    87         component_config = types.ComponentConfig(
    87             realm=text(realm),
    88             realm=text(realm),
    88             extra={"ID": ID})
    89             extra={"ID": ID})
    89         session_factory = wamp.ApplicationSessionFactory(
    90         session_factory = wamp.ApplicationSessionFactory(
    90             config=component_config)
    91             config=component_config)
    91         session_factory.session = WampSession
    92         session_factory.session = cls
    92 
    93 
    93         # create a WAMP-over-WebSocket transport client factory
    94         # create a WAMP-over-WebSocket transport client factory
    94         transport_factory = WampWebSocketClientFactory(
    95         transport_factory = WampWebSocketClientFactory(
    95             session_factory,
    96             session_factory,
    96             url=url,
    97             url=url,
   155 
   156 
   156     # TODO : GetPLCID()
   157     # TODO : GetPLCID()
   157     # TODO : PSK.UpdateID()
   158     # TODO : PSK.UpdateID()
   158 
   159 
   159     return WampPLCObjectProxy
   160     return WampPLCObjectProxy
       
   161 
       
   162 WAMP_connector_factory = partial(_WAMP_connector_factory, WampSession)