首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flask-SocketIO向客户端广播

Flask-SocketIO向客户端广播
EN

Stack Overflow用户
提问于 2019-10-17 00:58:05
回答 1查看 731关注 0票数 0

我在Flask文档(https://flask-socketio.readthedocs.io/en/latest/#broadcasting)中读到,向客户端发送消息可以由源自服务器的事件触发。所以我决定试一试。其思想是客户端每秒向服务器发送数字15,而无论客户端正在做什么,服务器每两秒向客户端发送数字12。

服务器端(.py):

代码语言:javascript
复制
from flask import Flask, jsonify, request, render_template
from flask_socketio import SocketIO, emit

app = Flask(__name__, static_folder='')
io = SocketIO(app, cors_allowed_origins="*")

@io.on('connected')
def connected():
    print("client connected")

@io.on('messageC')
def messageC(data):
    print(data)

def send_messageS():
    io.emit('messageS', 12)

if __name__ == '__main__':
    import _thread, time
    _thread.start_new_thread(lambda: io.run(app), ())

   while True:
       time.sleep(2)
       send_messageS()

客户端(.html):

代码语言:javascript
复制
<html>
<body>

    <script type="text/javascript" src="//code.jquery.com/jquery-2.1.3.min.js"></script>
    <script type="text/javascript" src="/resources/socket.io.js"></script>
    <script type="text/javascript" charset="utf-8">
        $(document).ready(function(){

           var socket = io.connect('http://localhost:5000');
           socket.on('connect', function() {
              socket.emit('connected');
           });

           socket.on('messageS', function(data) {
              console.log(data);
           });

           setInterval(function() { 
              socket.emit('messageC', 15);
           },1000);

        });
    </script>

</body>

其结果是,服务器每隔一秒接收到数字15,但客户端从未接收到数字12。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-20 22:11:45

我找到了一个解决方案。显然,eventlet不能与Python线程一起工作。因此,解决方案是“为Python标准库打补丁,以便线程、套接字等替换为eventlet友好版本”。

代码语言:javascript
复制
    import eventlet
    eventlet.monkey_patch()

这对我来说很管用。我在这里找到了这个解决方案:How to send message from server to client using Flask-Socket IO

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58418273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档