我想通过 EPP 协议向注册商发送 XML 请求并获得响应,连接成功,但是当我到达时fread($fp)
,加载需要很长时间。
有没有办法让它快速得到注册商的回复?
我在 hostbill 插件中使用下面的代码。
/** open socket* */
$fp = fsockopen("tcp://registrarwebsite.com", 700, $errno, $errstr, 200);
stream_set_blocking($fp, true);
stream_context_set_option($fp, 'ssl', 'verify_host', true);
stream_context_set_option($fp, 'ssl', 'verify_peer', true);
stream_context_set_option($fp, 'ssl', 'allow_self_signed', false);
stream_context_set_option($fp, 'ssl', 'local_cert', __DIR__ . '/ma_cert.pem');
stream_context_set_option($fp, 'ssl', 'local_pk', __DIR__ . '/ma_key.pem');
// $secure = stream_socket_enable_crypto($fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
// stream_set_blocking($fp, false);
if (!$fp) {
$this->addError('Il y a une erreur dans la connexion: ' . $errno . ' ' . $errstr);
return false;
} else {
$xml = htmlentities($this->prepareXMLRequest($xml));
fwrite($fp, $xml);
$out = fread($fp, 1024);
fclose($fp);
$out1 = htmlentities($fp);
$this->addError('<span style="color: green !important">Connexion se fait avec succes, le code retourné est : </span> ' . $out1);