首页 > 解决方案 > 为什么我收到错误,因为“方法必须有一个第一个参数,通常称为'self'”用于 flask-socket-io 连接事件

问题描述

我正在尝试使用烧瓶 socket-io 创建一个实时聊天应用程序。但是在我使用连接事件的地方,它显示了这个“方法必须有第一个参数,通常称为'self' ”错误。我怎样才能解决这个问题。我正在使用烧瓶-socketio 4.3.0。这是我的代码。

    @socketio.on('disconnect')
    def disconnect():
        print('Client disconnected')

    @socketio.on('connect')
    def connect():
        print("Client connected")

这是屏幕截图。

在此处输入图像描述

标签: flaskflask-socketio

解决方案


您在问题中显示了一个不完整的代码示例。您在一个类中定义这些处理程序,而不是作为独立函数,对吗?

处理程序应该是常规函数。如果您想将它们保留在您的类中,请尝试将它们设为静态方法:

    @socketio.on('disconnect')
    @staticmethod
    def disconnect():
        print('Client disconnected')

    @socketio.on('connect')
    @staticmethod
    def connect():
        print("Client connected")

推荐阅读