autobahn.twisted.websocket - python examples

Here are the examples of the python api autobahn.twisted.websocket taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

2 Examples 7

0 View Complete Implementation : dev.py
Copyright MIT License
Author : codelv
    def start(self, session):
        from twisted.internet import reactor
        from twisted.internet.defer import inlineCallbacks
        from autobahn.twisted.websocket import (
            WebSocketClientProtocol, WebSocketClientFactory
        )
        client = self

        #: Create local references
        mode = session.mode
        app = session.app
        process_events = session.app.process_events

        clast DevClient(WebSocketClientProtocol):
            def onConnect(self, response=None):
                print("Dev client connected!")
                session.connected = True
                client.connection = self

                #: Start remote debugger
                if mode == 'remote':
                    app.load_view(app)

            def onOpen(self):
                past

            def onMessage(self, payload, isBinary):
                if mode == 'remote':
                    process_events(payload)
                else:
                    r = session.handle_message(payload)
                    self.sendMessage(json.dumps(r))

            def onClose(self, wasClean, code, reason):
                print("Dev client disconnected: {} {} {}".format(
                    wasClean, code, reason))
                session.connected = False

                # Stop the app if remote debugging
                if mode == 'remote':
                    session.app.stop()
                else:
                    #: Try again in a few seconds
                    session.app.timed_call(1000, run)

        factory = WebSocketClientFactory(session.url)
        factory.protocol = DevClient

        def run():
            host = session.host
            port = session.port
            if mode == "remote":
                host = session.url.split("/")[2]
                if ":" in host:
                    host, port = host.split(":")
            print("Starting websocket client...")
            reactor.connectTCP(host, int(port), factory)

        #: Start
        session.app.deferred_call(run)

0 View Complete Implementation : dev.py
Copyright MIT License
Author : codelv
    def start(self, session):
        server = self
        with enamlnative.imports():
            from twisted.internet import reactor
            from twisted.web import resource
            from twisted.web.static import File
            from twisted.web.server import Site
            from autobahn.twisted.websocket import (
                WebSocketServerFactory, WebSocketServerProtocol
            )
            from autobahn.twisted.resource import WebSocketResource

        clast DevWebSocketHandler(WebSocketServerProtocol):
            def onConnect(self, request):
                print("Client connecting: {}".format(request.peer))

            def onOpen(self):
                print("WebSocket connection open.")

            def onMessage(self, payload, isBinary):
                r = session.handle_message(payload)
                self.sendMessage(json.dumps(r))

            def onClose(self, wasClean, code, reason):
                print("WebSocket connection closed: {}".format(reason))

        clast MainHandler(resource.Resource):
            def render_GET(self, req):
                return server.render_editor()

            def render_POST(self, req):
                #: Allow posting events
                r = session.handle_message(req.content.getvalue())
                return json.dumps(r)

        factory = WebSocketServerFactory(
            u"ws://0.0.0.0:{}".format(session.port))
        factory.protocol = DevWebSocketHandler
        root = resource.Resource()
        root.putChild("", MainHandler())
        root.putChild("dev", WebSocketResource(factory))
        root.putChild("source", File(sys.path[0]))
        root.putChild("tmp", File(os.environ.get('TMP',sys.path[0])))
        site = Site(root)
        reactor.listenTCP(session.port, site)
        print("Twisted dev server started on {}".format(session.port))