예제 #1
0
def run_python_wsgi_async(host="127.0.0.1", port=9010, async_=True):
    """
    Runs wsgi server on python 2.x with async middleware"
    """

    from wsgiref.simple_server import make_server
    from ws4py.websocket import EchoWebSocket
    from ws4py.server.wsgirefserver import WSGIServer, WebSocketWSGIRequestHandler
    from ws4py.server.wsgiutils import WebSocketWSGIApplication

    app = WebSocketWSGIApplication(handler_cls=EchoWebSocket)
    if async_:

        def middleware(app):
            def later(environ, start_response):
                for part in app(environ, start_response):
                    yield part

            return later

        app = middleware(app)
    server = make_server(host,
                         port,
                         server_class=WSGIServer,
                         handler_class=WebSocketWSGIRequestHandler,
                         app=app)
    server.initialize_websockets_manager()
    server.serve_forever()
예제 #2
0
파일: webapp.py 프로젝트: VOLTTRON/volttron
 def __init__(self, platformweb, host, port):
     self.platformweb = platformweb
     self.port = port
     self.host = host
     self.ws = WebSocketWSGIApplication(handler_cls=VolttronWebSocket)
     self.clients = []
     self.endpoint_clients = {}
     self._wsregistry = {}
예제 #3
0
 def __init__(self, masterweb, host, port):
     self.masterweb = masterweb
     self.port = port
     self.host = host
     self.ws = WebSocketWSGIApplication(handler_cls=VolttronWebSocket)
     self.clients = []
     self.endpoint_clients = {}
     self._wsregistry = {}
     self._log = logging.getLogger(self.__class__.__name__)
예제 #4
0
    def __init__(self, host, port):
        self.host = host
        self.port = port
        self.ws = WebSocketWSGIApplication(handler_cls=BroadcastWebSocket)

        # keep track of connected websocket clients
        # so that we can brodcasts messages sent by one
        # to all of them. Aren't we cool?
        self.clients = []
def run_gevent_server(host="127.0.0.1", port=9001):
    from gevent import monkey; monkey.patch_all()
    from ws4py.websocket import EchoWebSocket
    from ws4py.server.geventserver import WebSocketWSGIApplication, WSGIServer

    server = WSGIServer((host, port), WebSocketWSGIApplication(handler_cls=EchoWebSocket))
    logger = logging.getLogger('autobahn_testsuite')
    logger.warning("Serving gevent server on %s:%s" % (host, port))
    server.serve_forever()
예제 #6
0
def serve(blocking=False):
    ws_server = WSGIServer(
        ('localhost', int(Config.get('server', 'ws_port'))),
        WebSocketWSGIApplication(handler_cls=_LAUWebSocketHandler))
    if blocking == True:
        ws_server.serve_forever()  # Non-blocking serve
    else:
        ws_server.start()  # Non-blocking serve
        pass
    pass
예제 #7
0
 def __init__(self, host, port):
     register("ws4py", WebSocketChaussette)
     logger = configure_logger()
     self.server = make_server(
         app=WebSocketWSGIApplication(handler_cls=WebSocketGevent),
         host=host,
         port=port,
         backend="ws4py",
         address_family=socket.AF_INET,
         logger=logger)
     self.server.serve_forever()
예제 #8
0
    def get_wsgi_application(self):
        def wrapper(ws_app, environ, start_response):
            try:
                ws_app(environ, start_response)
            except HandshakeError as he:
                sock = environ['wsgi.input'].rfile._sock
                ws = self._handler_factory(sock, environ=environ)
                client = self._create_client(ws)
                self.on_handshake_error(client, he)
            return []

        if not self._wsgi_app:
            ws_app = WebSocketWSGIApplication(
                handler_cls=self._handler_factory)
            self._wsgi_app = lambda *args: wrapper(ws_app, *args)

        return self._wsgi_app
예제 #9
0
def main():
    import argparse
    from ws4py import configure_logger

    configure_logger()

    parser = argparse.ArgumentParser(description='Twister Server')
    parser.add_argument('--host', default='127.0.0.1')
    parser.add_argument('-p', '--port', default=9000, type=int)
    args = parser.parse_args()

    server = WSGIServer((args.host, args.port),
                        WebSocketWSGIApplication(handler_cls=Twister))

    print "Twister running on %s:%s" % (args.host, args.port)

    server.serve_forever()
예제 #10
0
 def __init__(self, host, port):
     self.host = host
     self.port = port
     self.ws = WebSocketWSGIApplication(handler_cls=BroadcastWebSocket)
예제 #11
0
    Runs wsgi server on python 2.x"
    """
    run_python_wsgi_async(host, port, False)


def run_python_wsgi_async(host="127.0.0.1", port=9010, async=True):
    """
    Runs wsgi server on python 2.x with async middleware"
    """

    from wsgiref.simple_server import make_server
    from ws4py.websocket import EchoWebSocket
    from ws4py.server.wsgirefserver import WSGIServer, WebSocketWSGIRequestHandler
    from ws4py.server.wsgiutils import WebSocketWSGIApplication

    app = WebSocketWSGIApplication(handler_cls=EchoWebSocket)
    if async:

        def middleware(app):
            def later(environ, start_response):
                for part in app(environ, start_response):
                    yield part

            return later

        app = middleware(app)
    server = make_server(host,
                         port,
                         server_class=WSGIServer,
                         handler_class=WebSocketWSGIRequestHandler,
                         app=app)
예제 #12
0
 def __init__(self):
     self.ws = WebSocketWSGIApplication(handler_cls=EchoWebSocket)