Python 使用Flask在客户端之间传递变量

Python 使用Flask在客户端之间传递变量,python,flask,Python,Flask,我试图让一些代码工作,但似乎不能得到它的权利,其目的是所有的客户端可以看到当一个按钮被按下 目前,我可以让按下按钮的客户机看到消息,但没有其他消息 Py: JS接收: $(document).ready(function(){ $(function() { if ("WebSocket" in window) { ws = new WebSocket("ws:

我试图让一些代码工作,但似乎不能得到它的权利,其目的是所有的客户端可以看到当一个按钮被按下

目前,我可以让按下按钮的客户机看到消息,但没有其他消息

Py:

JS接收:

$(document).ready(function(){                                            

    $(function() {
        if ("WebSocket" in window) {
            ws = new WebSocket("ws://" + document.domain + ":{{port}}/websocket/");
            ws.onmessage = function (msg) {
                var getButtons = JSON.parse(msg.data);
                $("p#log").html(getButtons.output );
            };
        };
    });
JS发送:

    var buttonQueue = [];

    $("a.button1").mousedown(function(e){
        e.preventDefault();
        buttonQueue.push("button1")
        ws.send(JSON.stringify({'output': buttonQueue}));
    });
    $("a.button1").mouseup(function(e){
        e.preventDefault();
        remove(buttonQueue, "button1");
        ws.send(JSON.stringify({'output': buttonQueue}));
    });
    $("a.button2").mousedown(function(e){
        e.preventDefault();
        buttonQueue.push("button2")
        ws.send(JSON.stringify({'output': buttonQueue}));
    });
    $("a.button2").mouseup(function(e){
        e.preventDefault();
        remove(buttonQueue, "button2");
        ws.send(JSON.stringify({'output': buttonQueue}));
    });


});

欣赏全新的观点。

我不是WebSocket方面的专家,但我的印象是ws协议只在客户端和服务器之间建立了持续的连接,允许从服务器发送数据,而无需客户端不断请求。你的Flask应用程序不知道任何其他连接的客户端;它一次只使用
handle\u websocket(ws)
与一个客户机通话。您必须告诉您的Flask应用程序当前连接了哪些客户端,然后ws.send()按钮将更新消息发送给所有客户端。我没有这方面的经验,但跟踪ws-connected客户端并向其发送更新的最流行方式似乎是。我还发现了一个例子,你可以适应你的需要。希望这有帮助

    var buttonQueue = [];

    $("a.button1").mousedown(function(e){
        e.preventDefault();
        buttonQueue.push("button1")
        ws.send(JSON.stringify({'output': buttonQueue}));
    });
    $("a.button1").mouseup(function(e){
        e.preventDefault();
        remove(buttonQueue, "button1");
        ws.send(JSON.stringify({'output': buttonQueue}));
    });
    $("a.button2").mousedown(function(e){
        e.preventDefault();
        buttonQueue.push("button2")
        ws.send(JSON.stringify({'output': buttonQueue}));
    });
    $("a.button2").mouseup(function(e){
        e.preventDefault();
        remove(buttonQueue, "button2");
        ws.send(JSON.stringify({'output': buttonQueue}));
    });


});