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