首页 > 解决方案 > Flask-Socketio 从一个文件而不是另一个文件发出响应

问题描述

我有 2 个文件,比如说file1.pyfile2.py.

文件1.py

from flask_socketio import SocketIO, emit
try:
    from __main__ import socketio, app
except ImportError:
    from file3 import socketio, app

class File1(object):

    @staticmethod
    def emit_from_file1():
        emit('resp','emitted from file1')

文件2.py:

from flask_restful import  Resource
from flask import request, g
from helpers.observer import Event
from . file1 import File1
import json
from flask_socketio import SocketIO, emit
try:
    from __main__ import socketio
except ImportError:
    from file3 import socketio


class File2(Resource):

    def __init__(self, **kwargs):
        # self.logger = kwargs.get('logger')
        pass

        # Event('door_to_be_opened', self.scan_progress_cv)
        Event(event_name, action_value)
        return "Event Received successfully"

    @socketio.on('event_in_file2')
    def get(self):
        emit('response_from_file2','emitting from file2')

我在两个文件中都做同样的事情,但我只收到来自 file2 的响应。没有错误,但 file1 没有发出响应。

标签: python-3.xflask-socketio

解决方案


我已经解决了这个问题。这只是一个版本控制问题。我只是更改了以下版本,并且效果很好。

后端:

python-engineio==4.1.0 
python-socketio==5.2.1 
Flask==1.1.2 
Flask-SocketIO==5.0.1

前端:

socket.io-client="^3.0.0"

推荐阅读