Рубрики
Uncategorized

Веб-сервис Swool learning network communication engine (4)

Автор оригинала: David Wong.

I. Служба HTTP

HTTP-сервер

Давайте посмотрим на руководство по введению в официальные документы swool – > быстрый запуск – > создайте веб-сервер, один раз запустите пример кода документа и увидите следующий эффект:

http _server. php

on('request', function ($request, $response) {
    var_dump($request->get, $request->post);

    //Cookie test
    // $response->cookie('name', 'lily', time()+3600);
    $response->header("Content-Type", "text/html; charset=utf-8");
    $response->end("

Hello Swoole. #".rand(1000, 9999)."

"); }); $http->start();

Откройте окно для доступа к сервису:

[email protected]:~# curl http://127.0.0.1:9501

Hello Swoole. #9147

[email protected]:~# curl http://127.0.0.1:9501?act=all

Hello Swoole. #4674

[email protected]:~#

HTTP-серверу нужно только обратить внимание на ответ на запрос, поэтому ему нужно только прослушать событие onrequest. Это событие запускается при поступлении нового HTTP-запроса. Функция обратного вызова события имеет два параметра, один из которых-объект $request, который содержит соответствующую информацию о запросе, такую как данные запроса get/post.

Другой – объект ответа. Ответ на запрос может быть завершен с помощью объекта ответа. Метод $response – > end() означает вывод фрагмента HTML-содержимого и завершение запроса.

  • 0.0.0.0 означает прослушивание всех IP-адресов. Сервер может иметь несколько IP-адресов одновременно, таких как 127.0.0.1 локальный IP-адрес обратной связи, 192.168.1.100 IP-адрес локальной сети, 210.127.20.2 IP-адрес внешней сети. Здесь вы также можете указать один IP-адрес для прослушивания
  • 9501 порт прослушивания, если занятая программа выдаст фатальную ошибку, прервите выполнение.

Статический контент

Когда статические страницы, такие как test.html не следуйте логике PHP, здесь нам нужно выполнить специальную настройку

set([
    'enable_static_handle' => true,
    'document_root' = > "/ work / study / code / swoole / static" // store static resource path
]);

$http->on('request', function ($request, $response) {
    var_dump($request->get, $request->post);

    //Cookie test
    // $response->cookie('name', 'lily', time()+3600);
    $response->header("Content-Type", "text/html; charset=utf-8");
    $response->end("

Hello Swoole. #".rand(1000, 9999)."

"); }); $http->start();