python Flask-socket.io向特定客户端发出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python Flask-socket.io向特定客户端发出相关的知识,希望对你有一定的参考价值。

<html>
    <body>
        <h1>I feel lonely</h1>
    
        <script type="text/javascript" src="//code.jquery.com/jquery-2.1.3.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">
            var socket = io.connect('http://' + document.domain + ':' + location.port);
            socket.on('connect', function() {
                socket.emit('connected');
            });
            socket.on('message', function(data) {
                $('h1').text(data)
            });
        </script>
    </body>
</html>
from flask import Flask, request
from flask.ext.socketio import SocketIO

app = Flask(__name__, static_folder='')
io = SocketIO(app)

clients = []

@app.route('/')
def index():
    return app.send_static_file('client.html')
    
@io.on('connected')
def connected():
    print "%s connected" % (request.namespace.socket.sessid)
    clients.append(request.namespace)
    
@io.on('disconnect')
def disconnect():
    print "%s disconnected" % (request.namespace.socket.sessid)
    clients.remove(request.namespace)
    
def hello_to_random_client():
    import random
    from datetime import datetime
    if clients:
        k = random.randint(0, len(clients)-1)
        print "Saying hello to %s" % (clients[k].socket.sessid)
        clients[k].emit('message', "Hello at %s" % (datetime.now()))

if __name__ == '__main__':
    import thread, time
    thread.start_new_thread(lambda: io.run(app), ())
    
    while True:
        time.sleep(1)
        hello_to_random_client()

以上是关于python Flask-socket.io向特定客户端发出的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 中向直方图添加特定的 x 刻度线? [复制]

给特定用户的消息 Socket Python

在 Python Discord Bot 中按名称而不是 ID 向特定文本通道发送消息

Discord - 使用 python 显示来自特定类别的频道名称

如何在 websocket 服务器上向特定用户发送消息

请教一个利用pywin32向特定窗口发送键盘消息的问题