【问题标题】:Detect first connect of persistent PHP stream (STREAM_CLIENT_PERSISTENT)检测持久 PHP 流的首次连接 (STREAM_CLIENT_PERSISTENT)
【发布时间】:2016-10-12 05:40:00
【问题描述】:

我想将 stream_socket_client 与选项 STREAM_CLIENT_PERSISTENT 一起用于有状态协议。所以一些数据交换应该只在 TCP 连接上进行(例如认证)。

我能否区分 stream_socket_client 返回的流是“新生”还是重复使用的流?

我说的是 php-fpm,所以使用一些全局变量来存储流状态不是一种选择,我猜 PHP 会话的使用很复杂。 谢谢。

【问题讨论】:

    标签: php networking


    【解决方案1】:

    同时我使用以下解决方法(是的,我知道这很丑......):

    $chunk = stream_set_chunk_size($stream, 8193);
    if ($chunk == 8193)
        //it's existing connection, newborn has other value (8192 mostly)
        return;
    }
    

    【讨论】:

      【解决方案2】:

      你可以使用ftell,如果返回的多于0,那么它就是一个重用的连接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 2017-05-28
        • 2012-07-30
        相关资源
        最近更新 更多