Hyperf 向别的服务器发起http请求

最近遇到一个问题就是当我从后台操作的时候,然后 hyperf 向某个服务发起一次http请求,对方马上收到了请求并处理了,但是有个诡异的问题就是,过了一段时间以后,对方的http服务打印又会收到这条请求,但是我在日志打印中是没有发现两次请求的(所以一开始我认为不是我代码的问题,但是我在没有使用框架的情况下,只是用 guzzle 包发起请求,对方是不会收到两次请求的,我就开始迷茫了)。排查了很久也没有解决办法,请教一下各位大佬有遇到过类似的问题,或者有什么好的解决思路吗。

下面是大概逻辑

$email = Email::findOrFail($request->input('id'));
    $server = Server::find($email->server_id);
    $client = new Client([
        'timeout' => 2
    ]);
    $ip = $server->ip;
    $port = $server->port;
    $roles = explode(',', $email->role_id);
    foreach ($roles as $role) {
        $response = $client->request('GET', "http://{$ip}:{$port}/GM", [
            'query' => [
            'method' => 'additems',
            'items' => $email->goods,
            'playerId' => $role,
        ]
    ]);
    var_dump(date('Y-m-d H:i:s').$response->getBody()->getContents());
}
KayuHo
讨论数量: 2

那不是在循环里发送请求吗,是不是发了多个

1年前 评论

你的var_dump难道不应该写在循环里?

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!