Пример использования Swoole в PHP
Swoole — это асинхронное расширение для PHP, которое значительно улучшает производительность и возможности PHP в области сетевого программирования, многозадачности и многопоточной обработки. С помощью Swoole можно создавать высокопроизводительные сетевые приложения, такие как HTTP-серверы, WebSocket-серверы и различные сетевые сервисы.
Пример простого HTTP-сервера на Swoole:
<?php
// Создаем HTTP сервер
$server = new Swoole\Http\Server("0.0.0.0", 9501);
// Регистрируем событие запроса
$server->on("request", function ($request, $response) {
// Устанавливаем заголовок ответа
$response->header("Content-Type", "text/plain");
// Отправляем ответ
$response->end("Hello, Swoole!");
});
// Запускаем сервер
$server->start();
Этот код создает HTTP-сервер, который слушает соединения на порту 9501 и отвечает строкой "Hello, Swoole!" на каждый запрос.
Пошаговое объяснение:
Создание HTTP сервера:
$server = new Swoole\Http\Server("0.0.0.0", 9501);
Эта строка создает новый HTTP-сервер, который будет слушать все IP-адреса (0.0.0.0) на порту 9501.
Регистрация обработчика события запроса:
$server->on("request", function ($request, $response) {
$response->header("Content-Type", "text/plain");
$response->end("Hello, Swoole!");
});
Здесь регистрируется функция-обработчик, которая будет вызываться при каждом HTTP-запросе. Внутри этой функции устанавливается заголовок Content-Type и отправляется текстовый ответ "Hello, Swoole!".
Запуск сервера:
$server->start();
Эта строка запускает сервер и начинает обработку входящих соединений.
Установка Swoole:
Для установки Swoole используйте PECL:
pecl install swoole
После установки расширения необходимо добавить его в ваш файл конфигурации php.ini:
extension=swoole
Теперь вы можете запустить свой PHP скрипт с использованием Swoole.
Пример с WebSocket-сервером:
<?php
// Создаем WebSocket сервер
$server = new Swoole\WebSocket\Server("0.0.0.0", 9502);
// Обработчик открытия нового соединения
$server->on('open', function ($server, $request) {
echo "connection open: {$request->fd}\n";
});
// Обработчик получения сообщения
$server->on('message', function ($server, $frame) {
echo "received message: {$frame->data}\n";
$server->push($frame->fd, "Hello, WebSocket!");
});
// Обработчик закрытия соединения
$server->on('close', function ($server, $fd) {
echo "connection close: {$fd}\n";
});
// Запускаем сервер
$server->start();
Этот код создает WebSocket-сервер, который отвечает "Hello, WebSocket!" на каждое полученное сообщение.
Использование Swoole открывает много возможностей для высокопроизводительного и асинхронного программирования на PHP, делая его отличным выбором для создания масштабируемых серверных приложений.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.