rowset-definition
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| rowset-definition [2026/02/25 20:12] – [Раздел autoexec] madmin | rowset-definition [2026/02/26 14:15] (текущий) – [Раздел autoexec] madmin | ||
|---|---|---|---|
| Строка 369: | Строка 369: | ||
| * На входе в сервис автоматически приходит параметр timeout - время выполнения в секундах. Под него сервис должен подстроиться | * На входе в сервис автоматически приходит параметр timeout - время выполнения в секундах. Под него сервис должен подстроиться | ||
| * Необходимо предотвратить остановку работы PHP скрипта Apache по max_execution_time, | * Необходимо предотвратить остановку работы PHP скрипта Apache по max_execution_time, | ||
| - | * Необходимо останавливать PHP скрипт при разрыве соединения с клиентом. Для этого надо тестировать наличие соединения, | + | * Необходимо останавливать PHP скрипт при разрыве соединения с клиентом. Для этого надо тестировать наличие соединения, |
| * При возникновении события надо послать клиенту 1 и остановить выполнение PHP скрипта | * При возникновении события надо послать клиенту 1 и остановить выполнение PHP скрипта | ||
| * При превышении времени необходимо остановить работу PHP скрипта, | * При превышении времени необходимо остановить работу PHP скрипта, | ||
| + | |||
| + | === mode=socket === | ||
| + | В этом режиме запрос вызывается по указанию сервера, | ||
| + | Для реализации такого способа необходим сервер, | ||
| + | |||
| + | < | ||
| + | < | ||
| + | enabled=" | ||
| + | request="< | ||
| + | mode=" | ||
| + | url="< | ||
| + | pingtimeout="< | ||
| + | ignoreerror=" | ||
| + | > | ||
| + | <param name="< | ||
| + | ... | ||
| + | <param name="< | ||
| + | </ | ||
| + | </ | ||
| + | * url - адрес socket соединения | ||
| + | * pingtimeout - если параметр задан, то клиент будет периодически посылать сообщение ping серверу, | ||
| + | * параметры param - добавляются в url polling запроса | ||
| + | |||
| + | Пример реализации WebSocket сервера на Ratchet | ||
| + | < | ||
| + | <?php | ||
| + | require_once(' | ||
| + | $path=pathRootConcat( | ||
| + | getCfg(' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | require_once($path); | ||
| + | |||
| + | use Ratchet\MessageComponentInterface; | ||
| + | use Ratchet\ConnectionInterface; | ||
| + | use Ratchet\Http\HttpServer; | ||
| + | use Ratchet\WebSocket\WsServer; | ||
| + | use Ratchet\Server\IoServer; | ||
| + | use React\EventLoop\Factory; | ||
| + | |||
| + | class MyServer implements MessageComponentInterface { | ||
| + | protected $clients; | ||
| + | |||
| + | public function __construct() { | ||
| + | $this-> | ||
| + | } | ||
| + | |||
| + | public function onOpen(ConnectionInterface $conn) { | ||
| + | $queryString = $conn-> | ||
| + | parse_str($queryString, | ||
| + | $conn-> | ||
| + | $this-> | ||
| + | echo '- open' | ||
| + | } | ||
| + | |||
| + | public function onClose(ConnectionInterface $conn) { | ||
| + | $this-> | ||
| + | echo '- close' | ||
| + | } | ||
| + | |||
| + | public function onMessage(ConnectionInterface $from, $msg) { | ||
| + | if ($msg==' | ||
| + | $from-> | ||
| + | echo '- ping - pong' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | public function onError(ConnectionInterface $conn, \Exception $e) { | ||
| + | $conn-> | ||
| + | echo '- error' | ||
| + | } | ||
| + | |||
| + | public function broadcast($msg) { | ||
| + | echo '- отправка сообщений всем пользователям' | ||
| + | foreach ($this-> | ||
| + | $client-> | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | $loop = Factory:: | ||
| + | $serverComponent = new MyServer(); | ||
| + | |||
| + | $loop-> | ||
| + | $serverComponent-> | ||
| + | }); | ||
| + | |||
| + | $webSock = new React\Socket\Server(' | ||
| + | |||
| + | $server = new Ratchet\Server\IoServer( | ||
| + | new HttpServer( | ||
| + | new WsServer($serverComponent) | ||
| + | ), | ||
| + | $webSock, | ||
| + | $loop | ||
| + | ); | ||
| + | |||
| + | echo " | ||
| + | $loop-> | ||
| + | </ | ||
rowset-definition.1772039561.txt.gz · Последнее изменение: 2026/02/25 20:12 — madmin
