【已解决】AsyncTcpConnection 重连机制,是否可以更改send的数据

joker

最近在workerman里面使用AsyncTcpConnection作为客户端连接ws服务器。但是对方里面有一个签名规则,里面需要nonce(当前时间融入到签名里面),并且会检验nonce的时效性。
 
使用过程中,触发onClose重连的时候,发现里面send的订阅数据是刚启动时候的数据。这里有没有地方可以设置reConnect时发送的数据呢?不太懂如何处理?还是只能自己另外实现reConnect的方式了?
 
 

已解决,下面为调整的代码:

<?php
$apikey = 'xxxx';
$seckey = 'xxxx';
$params = 'xxxxx';

function create_sign ($apikey, $seckey, $params) {
    $time = time();
    $payload = $apikey . $nonce . $params;
    return hash_hmac('sha256', $payload, $seckey, false);
}

//摘录部分
$worker->onClose = function ($wk) use ($apikey, $seckey, $params) {
    $time = time();
    $msg = json_enconde();
    $wk->msg = $msg;
    $wk->reConnect(5);
};
2248 2 0
2个回答

taozywu

自己写一下逻辑吧

  • 暂无评论
joker

已经找到处理方式了,直接用一个全局变量,onClose里面修改这个变量之后,再调用reConnect

  • 暂无评论
年代过于久远,无法发表回答
🔝