外部调用workerman协议报错

lp123

问题描述

1.workerman内部使用没问题了,但是在php7.2.33 tp5项目外部链接给指定客户或者全部客户发送消息,会出现可能十次有五六次才能成功,其他就报错"SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol "

2.还有如果进程设置为1,会出现不容易握手成功,开4个进程好像无法推送了,只能内部使用

程序代码或配置

// 建立socket连接到内部推送端口
$context = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
// 'allow_self_signed' => true,
// 'timeout' => 60, // 增加超时时间
]
]);
/这里使用 ssl://0.0.0.0:39200 会无法获取id值(无法值)/
$client = stream_socket_client('tcp://0.0.0.0:39200', $errno, $errmsg, 30, STREAM_CLIENT_CONNECT,$context);
fwrite($client, json_encode($data,JSON_UNESCAPED_UNICODE)."\n");
return fread($client, 8192);

操作系统环境及workerman/webman等具体版本

Nginx 1.24.0
Workerman version:3.5.31 PHP version:7.2.33

150 1 0
1个回答

lp123

emmmmm 解决了,最后发现是接入端口问题。很难发现就是这个错不是直接报错,而是一会儿正常一会儿报错,然后我把整个workerman都拆开检查了....

  • 暂无评论
×
🔝