27、Hyperf 3 快速使用 - Hyperf 3 协程 WebSocket 客户端

作者: 温新

分类: 【Hyperf 3 基础系列】

阅读: 407

时间: 2023-04-25 16:02:53

hi,我是温新,一名 PHPer

Hypref 版本:Hyperf 3.0

学习目标:学习 Hyperf 3 协程 WebSocket 客户端的使用

本篇文章根据文档案例进行简单的协程 websocket 客户端测试。

第一步:安装组件包

composer require hyperf/websocket-client

第二步:创建控制器并使用

<?php

namespace App\Controller\Test;


use Hyperf\Di\Annotation\Inject;
use Hyperf\HttpServer\Annotation\Controller;
use Hyperf\HttpServer\Annotation\GetMapping;
use Hyperf\WebSocketClient\ClientFactory;

// websocket 协程客户端
#[Controller]
class WebSocketClientController
{
    #[Inject]
    protected ClientFactory $clientFactory;

    #[GetMapping('/ws/index')]
    public function index()
    {
        // 不自动关闭连接
        $autoClose = false;
        // 服务端地址
        $host = '192.168.31.90:9509';
        // 通过 ClientFactory 创建 Client 对象,创建出来的对象为短生命周期对象
        $client = $this->clientFactory->create($host, $autoClose);
        // 向服务端发送消息
        $client->push('HttpServer 中使用 WebSocket Client 发送数据。');
        // 接收服务端消息并设置 2 秒超时
        $msg = $client->recv(2);
        // 获取文本数据:$res_msg->data
        return $msg->data;
    }
}

第三步:测试

$ curl http://192.168.31.90:9501/ws/index
发给 2 号客户端的消息:HttpServer 中使用 WebSocket Client 发送数据。

本篇文章结束,我是温新。

请登录后再评论