Это обновление охватывает следующие компоненты с основными дополнениями Сервер WebSocket и Клиент для совместной работы WebSocket Компоненты и исправляет некоторые ошибки гиперф/константы гиперф/база данных гиперф/di гиперф/фреймворк гиперф/http-сервер гиперф/json-rpc гиперф/кэш моделей гиперф/websocket-клиент гиперф/websocket-сервер
Добавлен
- # 48 Увеличьте клиент и сервер совместной работы WebSocket
- # # 51 Увеличено
включить кэшПараметрическое отключение управленияИсточник определенияВключено ли кэширование сканирования аннотаций - #61 передача
db:модельДобавление типов атрибутов при создании моделей командами - # 65 Кэш моделей Добавлена поддержка формата JSON
Измененный
- # # 46 Удалено
гиперф/di,гиперреф/командаигиперф/диспетчерПара компонентовгиперф/фреймворкЗависимости компонентов
Исправлено
- # 45 исправлены ошибки при ссылке
hyperf/websocket-серверКомпоненты могут привести к сбою при запуске HTTP-сервера - # 55 уровень метода восстановления
@Промежуточное программное обеспечениеПроблемы, которые могут быть затронуты аннотациями - #73 ремонт
бд:модельНеправильная обработка коротких атрибутов командами - # 88 устраняет проблему, связанную с тем, что сгенерированная маршрутизация может быть неправильной, когда контроллер имеет несколько папок
- # 101 Константы восстановления не существуют
@СообщениеСообщение об ошибке в аннотациях
Hyperref обеспечивает инкапсуляцию сервера WebSocket, который может быстро создавать приложение WebSocket на основе компонентов hyperf/websocket-сервера.
устанавливать
composer require hyperf/websocket-server
Настройка Сервера
изменить конфигурацию/загрузку/сервер. php , добавьте следующую конфигурацию.
[
[
'name' => 'ws',
'type' => Server::SERVER_WEBSOCKET,
'host' => '0.0.0.0',
'port' => 9502,
'sock_type' => SWOOLE_SOCK_TCP,
'callbacks' => [
SwooleEvent::ON_HAND_SHAKE => [Hyperf\WebSocketServer\Server::class, 'onHandShake'],
SwooleEvent::ON_MESSAGE => [Hyperf\WebSocketServer\Server::class, 'onMessage'],
SwooleEvent::ON_CLOSE => [Hyperf\WebSocketServer\Server::class, 'onClose'],
],
],
],Маршрутизация конфигурации
В настоящее время поддерживается только маршрутизация конфигурации в режиме файла конфигурации, а в будущем будет предоставлен режим аннотации.
останься config/routes.php Увеличить соответствие в файлах ws Конфигурация маршрутизации сервера, вот ws Значение зависит от того, где вы находитесь. config/autoload/server.php Сервер websocket имя Значение.
Создайте соответствующий контроллер
push($frame->fd, 'Recv: ' . $frame->data);
}
public function onClose(Server $server, int $fd, int $reactorId): void
{
var_dump('closed');
}
public function onOpen(Server $server, Request $request): void
{
$server->push($request->fd, 'Opened');
}
}Затем, когда вы запустите сервер, вы увидите, что сервер WebSocket был запущен и прослушан на порту 9502. В это время вы можете подключаться и передавать данные через различные клиенты WebSocket.
$ php bin/hyperf.php start [INFO] Worker#0 started. [INFO] WebSocket Server listening at 0.0.0.0:9502 [INFO] HTTP Server listening at 0.0.0.0:9501
Hyperref обеспечивает инкапсуляцию клиента WebSocket, который может обращаться к серверу WebSocket на основе компонентов hyper/websocket-клиента.
устанавливать
composer require hyperf/websocket-client
Воспользуйся
Компоненты обеспечивают Hyperf\WebSocket Клиент\ClientFactory Для создания клиентских объектов Hyperf\WebSocketClient\Client Давайте покажем вам непосредственно через код:
clientFactory->create($host);
}
}Автоматическое закрытие соединительного выключателя
По умолчанию созданные Клиент Объекты проходят откладывают автоматически закрывают Подключаются, если вы не хотите автоматически закрывать Клиент Передавать второй параметр, когда объект $Автоклизируется по ложь :
create($host, $autoClose);
Hyperf основан на Swool 4.3+ Реализуя высокопроизводительную, очень гибкую структуру протокола PHP, встроенные серверы протоколов и большое количество часто используемых компонентов, производительность более традиционна на основе PHP-FPM . Структура качественно улучшается, обеспечивает сверхвысокую производительность, но также поддерживает чрезвычайно гибкую масштабируемость. Все стандартные компоненты реализованы на основе стандартов PSR, и на основе строгой конструкции внедрения зависимостей это гарантирует, что большинство компонентов или классов основаны на стандартах PSR. Сменный И Многоразовые . Библиотеки компонентов фреймворка в дополнение к общей сопрограмме s Клиенту MySQL 、 клиенту Redis Мы также подготовили для вас ассоциированное издание. Красноречивый ORM 、 Служба RPC и клиент JSON 、 Сервер и клиент GRPC 、 Zipkin (Открытая трассировка) Клиент 、 Клиент GuzzleHttp 、 Клиент эластичного поиска 、 Клиент Консула 、 Клиент ETCD 、
Хотя фреймворк, основанный на языке PHP, сейчас находится в спорной эпохе, мы все еще не можем увидеть идеальную структуру элегантного дизайна и сосуществования сверхвысокой производительности, а также фреймворк, который действительно прокладывает путь для микроуслуг PHP. В соответствии с первоначальным намерением Hyperf и ее членов команды мы будем продолжать инвестировать и прилагать усилия для достижения этой цели и приглашаем вас присоединиться к нам. Конструкция источника.
Гиперскорость + Из названия мы будем Суперскорость и гибкость Как ген Гипера.
- Для сверхвысокой скорости мы основываемся на целом процессе и проводим большую оптимизацию в дизайне фреймворка, чтобы обеспечить выход сверхвысокой производительности.
- Для обеспечения гибкости мы опираемся на мощные компоненты внедрения зависимостей Hyper. Компоненты основаны на стандартных контрактах PSR и реализациях контрактов, определенных Hyper. Большинство компонентов или классов в рамках фреймворка можно заменить.
Основываясь на вышеуказанных характеристиках, Hyperf будет обладать широкими возможностями, такими как веб-сервисы, службы шлюза, распределенное промежуточное программное обеспечение, архитектура микросервисов, игровые серверы, Интернет вещей (IOT) и так далее.
Мы потратили много времени на составление документов, чтобы решить все виды проблем, вызванных отсутствием документов. Документы также содержат множество примеров, которые также удобны для новичков.
Мы провели большое количество модульных тестов для компонентов, чтобы убедиться в правильности логики, сохраняя при этом высокое качество документов. До официального открытия Hyperf для внешнего мира (20 июня 2019 года) мы уже запустили несколько сервисов на колесе C и колесе B и стабильно работали более шести месяцев. После суровых производственных условий (таких как 618) мы только официально открыли проект для внешнего мира.
Github < – Точечная звезда поддерживает нас. Группа QQ Hyperf: 862099724