rowset-definition
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| rowset-definition [2026/02/26 12:52] – [Раздел autoexec] madmin | rowset-definition [2026/02/26 14:15] (текущий) – [Раздел autoexec] madmin | ||
|---|---|---|---|
| Строка 391: | Строка 391: | ||
| </ | </ | ||
| </ | </ | ||
| - | * url - http адрес socket соединения | + | * url - адрес socket |
| + | * pingtimeout - если параметр задан, то клиент будет периодически посылать сообщение ping серверу, | ||
| * параметры param - добавляются в url polling запроса | * параметры 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.1772099524.txt.gz · Последнее изменение: 2026/02/26 12:52 — madmin
