因项目只做socket客户端,不想用workerman或者swoole框架,简单实现ws PHP客户端

php 复制代码
D:\phpstudy_pro\Extensions\php\php7.4.3nts\composer require textalk/websocket
1、因项目只做socket客户端,不想用workerman或者swoole框架,简单实现ws PHP客户端
<?php
use WebSocket\Client as WsClient;

 private static $worker = null;
 
 public static function getClinet($url) {
        if (self::$worker == null) {
            self::$worker = new WsClient($url);
        }

        try {
            self::$worker->ping();
        } catch (\Exception $e) {
            self::$worker = null;
            return null;
        }

        return self::$worker;
    }
	
	public function sendToWorkerByWebSocket($taskModel) {
        $data = [
            'id' => $taskModel->id,
            'inst' => $taskModel->inst,
        ];
        $jsonData = json_encode($data);

        $url = sprintf('ws://%s:%d/ws', env('TCPWORKER_IP', '127.0.0.1'), env('TCPWORKER_PORT', 6));

        $client = self::getClinet($url);
        if ($client) {
            try {
                $client->send($jsonData);
                // $res = $client->receive();
                \Log::channel('websocket')->info('success:' .$jsonData);
            } catch (\Exception $e) {
                \Log::channel('websocket')->info($e->getMessage());
                \Log::channel('websocket')->info('fail:' .$jsonData);
            }
        } else {
            \Log::channel('websocket')->info('fail:ping不通');
        }

        return true;
    }

docs/Client.md · master · mirrors / Textalk / websocket-php · GitCode

相关推荐
ServBay1 小时前
一个下午,一台电脑,终结你 90% 的 Symfony 重复劳动
后端·php·symfony
kali-Myon7 小时前
2025春秋杯网络安全联赛冬季赛-day2
python·安全·web安全·ai·php·pwn·ctf
IOsetting8 小时前
金山云主机添加开机路由
运维·服务器·开发语言·网络·php
kali-Myon8 小时前
2025春秋杯网络安全联赛冬季赛-day1
java·sql·安全·web安全·ai·php·web
kali-Myon8 小时前
2025春秋杯网络安全联赛冬季赛-day3
python·安全·web安全·ai·php·web·ctf
xqqxqxxq10 小时前
Java IO 核心:BufferedReader/BufferedWriter & PrintStream/PrintWriter 技术笔记
java·笔记·php
静听山水11 小时前
Redis的Pipeline (管道)
数据库·redis·php
hzb6666612 小时前
unictf2026
开发语言·javascript·安全·web安全·php
JaguarJack12 小时前
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
后端·php·服务端
YUJIANYUE21 小时前
PHP纹路验证码
开发语言·php