Класс CakeSocket
Класс CakePHP для подключения к сетевому сокету.
Базовый класс ядра для сетевого взаимодействия.
Прямые подклассы
Авторские права: Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Network/CakeSocket.php
Краткое описание свойств
-
$_baseConfigprotectedБазовые параметры конфигурации для сокетного подключенияarray -
$_connectionErrorsprotectedarrayИспользуется для захвата предупреждений о подключении, которые могут возникнуть, например, при ошибках SSL.
-
$_encryptMethodsprotectedСодержит все доступные методы шифрованияarray -
$configpublicНастройки конфигурации для сокетного подключенияarray -
$connectedpublicЭтот булевый параметр содержит текущее состояние класса CakeSocketboolean -
$connectionpublicСсылка на ресурс сокетного подключенияresource -
$descriptionpublicОписание CakeSocketstring -
$encryptedpublicИстина, если потоковый сокет зашифрован после вызова CakeSocket::enableCrypto()boolean -
$lastErrorpublicЭта переменная содержит массив с последним номером ошибки (num) и строкой (str)array
Краткое описание методов
- __construct() publicКонструктор.
- __destruct() publicДеструктор, используется для отключения от текущего подключения.
- _addTlsVersions() protectedДобавляет версии TLS, зависящие от конкретных версий PHP.
- _connectionErrorHandler() protected
socket_stream_client() не заполняет errNum или $errStr при возникновении ошибок подключения, как, например, при ошибках проверки SSL.
- _setSslContext() protectedНастройка параметров контекста SSL.
- address() publicПолучение IP-адреса текущего подключения.
- addresses() publicПолучение всех IP-адресов, связанных с текущим подключением.
- connect() publicПодключение сокета к указанному хосту и порту.
- context() publicПолучение контекста подключения.
- disconnect() publicОтключение сокета от текущего подключения.
- enableCrypto() publicШифрование текущего потокового сокета, используя один из определенных методов шифрования.
- host() publicПолучение имени хоста текущего подключения.
- lastError() publicПолучение последней ошибки в виде строки.
- read() public
Чтение данных из сокета. Возвращает false, если данные недоступны или подключение не установлено.
- reset() publicСброс состояния экземпляра этого сокета в начальное состояние (до выполнения CakeObject::__construct)
- setLastError() publicУстановка последней ошибки.
- write() publicЗапись данных в сокет.
Подробное описание методов
__construct()source public
__construct( array $config array() )
Конструктор.
Параметры
- массив
$configнеобязательно array() - Настройки сокета, которые будут объединены с базовыми настройками
См. также
CakeSocket::$_baseConfig__destruct()source public
__destruct( )
Деструктор, используется для отключения от текущего подключения.
_addTlsVersions()source protected
_addTlsVersions( )
Добавляет версии TLS, зависящие от конкретных версий PHP.
Эти версии TLS не поддерживаются более старыми версиями PHP, поэтому мы должны условно задавать их, если они поддерживаются.
Начиная с PHP5.6.6, STREAM_CRYPTO_METHOD_TLS_CLIENT не включает TLS1.1 или 1.2. Если у нас есть поддержка TLS1.2, нам нужно обновить карту методов.
См. также
https://bugs.php.net/bug.php?id=69195https://github.com/php/php-src/commit/10bc5fd4c4c8e1dd57bd911b086e9872a56300a0
_connectionErrorHandler()source protected
_connectionErrorHandler( integer $code , string $message )
socket_stream_client() не заполняет errNum или $errStr при возникновении ошибок подключения, как, например, при ошибках проверки SSL.
Вместо этого нам нужно вручную обрабатывать эти ошибки.
Параметры
- целое число
$code - Код.
- строка
$message - Сообщение.
_setSslContext()source protected
_setSslContext( string $host )
Настройка параметров контекста SSL.
Параметры
- строка
$host - Имя хоста, к которому осуществляется подключение.
address()source public
address( )
Получение IP-адреса текущего подключения.
Возвращает
строкаIP-адрес
addresses()source public
addresses( )
Получение всех IP-адресов, связанных с текущим подключением.
Возвращает
массивIP-адреса
connect()source public
connect( )
Подключение сокета к указанному хосту и порту.
Возвращает
булевоУспешно
Выбрасывает
SocketExceptioncontext()source public
context( )
Получение контекста подключения.
Возвращает
null|массивNull, когда нет подключения, массив, когда есть.
disconnect()source public
disconnect( )
Отключение сокета от текущего подключения.
Возвращает
булевоУспешно
enableCrypto()source public
enableCrypto( string $type , string $clientOrServer 'client' , boolean $enable true )
Шифрует текущий сокет потока, используя один из определённых методов шифрования.
Параметры
- строка
$type - Тип, который может быть одним из 'sslv2', 'sslv3', 'sslv23', 'tls', 'tlsv1_1' или 'tlsv1_2'.
- строка
$clientOrServerнеобязательно 'client' - Может быть одним из 'client', 'server'. По умолчанию 'client'.
- логическое значение
$enableнеобязательно true - Включить или выключить шифрование. По умолчанию включено (true).
Возвращает
booleanИстина при успехе
Выбрасывает
InvalidArgumentExceptionЕсли выбран неверный метод шифрования.
SocketExceptionЕсли попытка включения SSL/TLS завершилась неудачей.
См. также
stream_socket_enable_cryptolastError()source public
lastError( )
Возвращает последнюю ошибку в виде строки.
Возвращает
строка|nullПоследняя ошибка
read()source public
read( integer $length 1024 )
Читает данные из сокета. Возвращает false, если данные недоступны или соединение не установлено.
Параметры
- целое число
$lengthнеобязательно 1024 - Необязательная длина буфера для чтения; по умолчанию 1024
Возвращает
смешанный типДанные сокета
reset()source public
reset( array $state null )
Сбрасывает состояние этого экземпляра Socket до начального состояния (до выполнения CakeObject::__construct).
Параметры
- массив
$stateнеобязательно null - Массив с ключами и значениями для сброса.
Возвращает
booleanИстина при успехе
setLastError()source public
setLastError( integer $errNum , string $errStr )
Устанавливает последнюю ошибку.
Параметры
- целое число
$errNum - Код ошибки
- строка
$errStr - Текст ошибки
write()source public
write( string $data )
Записывает данные в сокет.
Параметры
- строка
$data - Данные для записи в сокет
Возвращает
booleanУспех
Подробное описание свойств
$_baseConfigsource
protected массив
Базовые параметры конфигурации для соединения сокета
array(
'persistent' => false,
'host' => 'localhost',
'protocol' => 'tcp',
'port' => 80,
'timeout' => 30,
'cryptoType' => 'tls',
) $_connectionErrorssource
protected массив
Используется для захвата предупреждений о подключении, которые могут возникнуть, например, при ошибках SSL.
array()
$_encryptMethodssource
protected массив
Содержит все доступные методы шифрования.
array(
// @codingStandardsIgnoreStart
'sslv2_client' => STREAM_CRYPTO_METHOD_SSLv2_CLIENT,
'sslv3_client' => STREAM_CRYPTO_METHOD_SSLv3_CLIENT,
'sslv23_client' => STREAM_CRYPTO_METHOD_SSLv23_CLIENT,
'tls_client' => STREAM_CRYPTO_METHOD_TLS_CLIENT,
'sslv2_server' => STREAM_CRYPTO_METHOD_SSLv2_SERVER,
'sslv3_server' => STREAM_CRYPTO_METHOD_SSLv3_SERVER,
'sslv23_server' => STREAM_CRYPTO_METHOD_SSLv23_SERVER,
'tls_server' => STREAM_CRYPTO_METHOD_TLS_SERVER,
// @codingStandardsIgnoreEnd
) $connectedsource
public логическое значение
Это логическое значение содержит текущее состояние класса CakeSocket.
false
$encryptedsource
public логическое значение
Истина, если поток сокета зашифрован после вызова CakeSocket::enableCrypto().
false
$lastErrorsource
public массив
Эта переменная содержит массив с последним кодом ошибки (num) и текстом ошибки (str).
array()
© 2005–2017 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/2.10/class-CakeSocket.html