on_open() missing 1 required positional argument: 'ws'

  • 问题描述

    将websocket的on_open()封装到一个类中,就会出现如题问题。

  • 解决方案

    问题出在websocket_callback方法调用上。

        def _callback(self, callback, *args):
            if callback:
                try:
                    if inspect.ismethod(callback):
                        callback(*args)
                    else:
                        callback(self, *args)
    

    默认是调用函数,然后传入参数。

    on_open(self, ws)class内的方法时,会把self也当成一个参数传给_callback,这样它就找不到想要的ws,可以把ws设置为一个类的全局变量,不需要传入到on_open中,直接从全局self.ws调用。

  • References

  1. Problem with using websocket in a class on Windows platform #469
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值