Python补丁对象方法

2024-04-25 20:40:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在测试中模拟websocket的ping超时。你知道吗

首先,我试图悄悄地关闭TCP套接字,但由于 FIN已发送。iptables不是一个选项。你知道吗

我使用tornado库来模拟websocket客户端。你知道吗

我阅读了如何在已经实例化的对象中替换方法。 它在一个简单的演示中工作,但是tornado似乎忽略了我的操作。你知道吗

可能是什么?你知道吗

import types

ws.websocket_connect(url, callback=openCallback,
            on_message_callback=messageCallback)

def openCallback(future):
    ws = future.result()
    inst = ws.protocol

    def stub(self, x):
        print "STUB"
    inst.write_ping = types.MethodType(stub, inst, inst.__class__)

没有任何错误,但未调用存根,并且客户端仍会答复服务器ping请求。你知道吗


Tags: 客户端iptableswsdefcallbackfuturepingtornado
1条回答
网友
1楼 · 发布于 2024-04-25 20:40:18

我意识到我想禁用错误的方法。你知道吗

写入ping被服务器用来发送ping请求,但是 客户机写pong,所以我重写了写帧方法(fin,操作码) 并转发控制到原来的实现如果操作码!=0xA。你知道吗

相关问题 更多 >