# WebSocket chat room example. # https://responder.kennethreitz.org/tutorial-websockets.html from starlette.websockets import WebSocketDisconnect import responder api = responder.API() connected = set() @api.route("/") def index(req, resp): resp.html = """

Chat Room

""" # noqa: E501 @api.route("/chat", websocket=True) async def chat(ws): await ws.accept() connected.add(ws) try: while True: message = await ws.receive_text() for client in connected: await client.send_text(message) except WebSocketDisconnect: pass finally: connected.discard(ws) if __name__ == "__main__": api.run()