【问题标题】:PHP socket fread response takes foreverPHP socket fread 响应需要永远
【发布时间】:2018-01-02 01:16:27
【问题描述】:

我想通过 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);

【问题讨论】:

  • 在一个什么?火箭飞船?
  • 抱歉,我没听懂你的问题?
  • 标题:“PHP socket fread response takes forever in a”,那么in a是什么?在火箭飞船中,在时间机器中,在真空中?
  • 啊,抱歉,非常感谢……这只是一个错字。最佳 +1

标签: php sockets tcp provisioning epp


【解决方案1】:

您的 EPP 实现是错误的(如果服务器当然支持该标准),请参阅我引用的 RFC5734

  1. 数据单元格式

EPP 数据单元包含两个字段:一个 32 位的标头,描述 数据单元的总长度,以及 EPP XML 实例。这 EPP XML 实例的长度通过减去四个来确定 数据单元总长度的八位字节。接收器必须 成功读取了那么多字节以检索完整的 EPP XML 处理 EPP 消息之前的实例。

另请注意第 3 节,它显示当您打开 TCP/TLS 连接时,第一方说话的是带有&lt;greeting&gt; 的服务器,因此您首先需要读取该客户端,然后发送您的登录信息。

【讨论】:

  • 非常感谢您的宝贵回答,这很有帮助^^ Best +1
猜你喜欢
  • 2013-12-08
  • 1970-01-01
  • 1970-01-01
  • 2021-03-17
  • 2014-02-24
  • 2014-07-08
  • 2013-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多