Как мне начать Hunchentoot?

Как запустить Hunchentoot в проекте? Я посмотрел руководство Эди Вейц, и все прошло гладко, пока после установки. Перечисленные учебники были либо сломаны, либо пропущены из-за фактического использования сервера.

У меня есть файл asdf, установлены зависимости с помощью quicklisp и настроена таблица отправки. Как мне заставить Hunchentoot работать с этим материалом?

3 ответа

Чтобы обновить, я улучшил ответ Сванте:

(defun start-server ()
  (stop-server)
  (start (setf *acceptor*
               (make-instance 'easy-acceptor
                              :port 4242))))

(defun stop-server ()
  (when *acceptor*
    (when started-p *acceptor*
     (stop *acceptor*))))

До запуска сервера акцептор равен нулю. После запуска сервера (даже если он впоследствии был остановлен) он больше не равен нулю. Тест start-p проверяет, запущен ли инициализированный easy-acceptor. Если вы попытаетесь остановить уже остановленный акцептор, вы получите сообщение об ошибке.

Вы вызываете start на примере acceptor,

Если вы используете основной easy-handler механизм, который идет с hunchentoot, это было бы easy-acceptor,

Вы захотите иметь механизм для запуска и остановки вашего сервера. Это может выглядеть так:

(defvar *acceptor* nil)

(defun start-server ()
  (stop-server)
  (start (setf *acceptor*
               (make-instance 'easy-acceptor
                              :port 4242))))

(defun stop-server ()
  (when *acceptor*
    (stop *acceptor*)))
(start (defparameter hunchentoot-listener
         (make-instance 'easy-acceptor
                        :port 4242
                        :document-root #p"/path/to/your/html/")))

вы получите работающий веб-сервер через порт 4242 ( http://localhost:4242/)

Другие вопросы по тегам