使用AsyncTcpConnection異步連接wss服務端,一直報錯。php環(huán)境使用的是php8.2,文件是從Workerman官網(wǎng)下載的(http://www.wtbis.cn/download)
我換成本地的php7.2環(huán)境后,可以正常連接
報錯內(nèi)容如下:
SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
if ($businessWorker->id == 0) {
$db = new DbConnection('127.0.0.1', '3306', 'root', 'test', 'test');
$option = $db->select('code')
->from('test')
->limit(4)
->offset(0)
->query();
$db->closeConnection();
if (!isset($option)) {
return;
}
$code = implode(",",array_keys($option));
global $redis;
$redis = new redis();
$redis->connect('127.0.0.1', 6379);
$con = new AsyncTcpConnection('ws://test.cn:443');
$con->transport = 'ssl';
// $contextOptions = [
// 'ssl' => [
// 'verify_peer' => false,
// 'verify_peer_name' => false
// ]
// ];
// $con->context = $contextOptions;
$con->onConnect = function ($con) use ($code)
{
echo "連接成功";
};
$con->onMessage = function ($con, $message) use ($option)
{
$data = json_decode($message, true);
// 如果消息數(shù)達到1000
static $request_count = 0;
if(++$request_count >= self::MAX_REQUEST)
{
/*
* 退出當前進程,主進程會立刻重新啟動一個全新進程補充上來
* 從而完成進程重啟
*/
Worker::stopAll();
}
};
$con->onClose = function ($con)
{
Timer::del($con->timer_id);
$con->reConnect(1);
};
$con->connect();
}