用于连续串行数据流的带flask和vue的Python套接字

用于连续串行数据流的带flask和vue的Python套接字,python,sockets,flask,Python,Sockets,Flask,因此,我有一个flask应用程序,它由flask\u socketio包扩展 我目前有一个vue前端,它连接到一个插座 现在,套接字连接的输出如下所示: 我还在flask应用程序的终端中看到一个连接: 127.0.0.1---[2019年8月23日21:07:11]“GET/socket.io/?EIO=3&transport=polling&t=mou u1wR HTTP/1.1”200 但是,我的代码中有这样一条信息:当套接字连接时,应该启动一个whiletrue线程,以继续接收数据 这是

因此,我有一个flask应用程序,它由
flask\u socketio
包扩展

我目前有一个vue前端,它连接到一个插座

现在,套接字连接的输出如下所示:

我还在flask应用程序的终端中看到一个连接:

127.0.0.1---[2019年8月23日21:07:11]“GET/socket.io/?EIO=3&transport=polling&t=mou u1wR HTTP/1.1”200

但是,我的代码中有这样一条信息:当套接字连接时,应该启动一个while
true
线程,以继续接收数据

这是我的代码:

from flask import Flask, jsonify
from flask_socketio import SocketIO, send, emit
import threading
from threading import Lock
import time
import controllers.gpsController

# configuration
DEBUG = True

# instantiate the app
app = Flask(__name__)
app.config.from_object(__name__)
thread = None
thread_lock = Lock()
async_mode = None
# app.config['SECRET_KEY'] = 'secret!'

# enable CORS
socketio = SocketIO(app, cors_allowed_origins='*', async_mode=async_mode)

def activate_gps():
    ser = controllers.gpsController.open_serial_connection()
    while True:
        data = controllers.gpsController.readGPS(ser)
        if data != None:
            socketio.emit('fetch_gps_data', data, broadcast=True)
            socketio.sleep(0.1)

# Use sockets here
@socketio.on('connect')
def start_get_data_thread():
    global thread
    with thread_lock:
        if thread is None:
            thread = socketio.start_background_task(target=activate_gps)

if __name__ == '__main__':
    socketio.run(app, host='127.0.0.1', port=12345)
有人知道我做错了什么吗?如果我在另一个文件中有te代码
activate_gps()
,并调用它,我就会得到想要的输出