如何使用python websockets只向一方发送响应?

2024-04-24 14:16:15 发布

您现在位置:Python中文网/ 问答频道 /正文

这是一个烧瓶应用程序。在

我学的是WebSocks。我想说的是,当我在editor1中写的时候,editor1的所有内容都转到了连接用户的editor2,而不是我的editor2,反之亦然。但似乎现在还没有发生,当我写我的和其他连接的用户时,文本区都会更新。请帮忙

<!DOCTYPE HTML>
<html>
<head>
    <script type="text/javascript" src="//code.jquery.com/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.16/socket.io.min.js"></script>



    <script type="text/javascript" charset="utf-8">
        $(document).ready(function(){
            namespace = '/test'; // change to an empty string to use the global namespace

            var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
            socket.on('connect', function() {
                socket.emit('my event', {data: 'I\'m connected!'});
            });

            socket.on('my response', function(msg) {
                $('textarea#editor2').val(msg.data);
            });

            $('textarea#editor1').keyup(function(event) {
                socket.emit('my broadcast event', {data: $('#editor1').val()});
                return false;
            });
        });
    </script>


</head>
<body>
    <h1>Flask-SocketIO Test</h1>
    <textarea rows=10 cols=50 id="editor1"></textarea>
    <textarea rows=10 cols=50 id="editor2"></textarea>
</body>
</html>

烧瓶代码:

^{pr2}$

Tags: textioeventdata烧瓶mytypescript
1条回答
网友
1楼 · 发布于 2024-04-24 14:16:15

Flask SocketIO目前没有“发送给除我之外的所有用户”选项,如果您广播某些内容,则所有用户都会收到,包括发送者。在

一种解决方案是在消息有效负载中包含标识发送方的内容,以便在客户端可以检查接收到的消息是来自同一用户还是来自不同的用户。在

另一个选择(在您的情况下可能起作用,也可能不起作用)是不使用广播功能,而是直接将消息发送给目标用户。您可以使用“房间”功能来实现这一点,方法是将每个用户放在不同的房间中,然后将消息发送到适当的房间。在

我希望这有帮助。在

相关问题 更多 >