6

如何在项目中启动 Hunchentoot?我查看了 Edi Weitz 的指南,一切都很顺利,直到安装完成。列出的教程要么被破坏,要么略过实际的服务器使用情况。

我有我的 asdf 文件,使用 quicklisp 安装依赖项,并设置了一个调度表。如何让 Hunchentoot 使用这些东西?

4

3 回答 3

3

为了更新,我改进了 Svante 的回答:

(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*))))

在启动服务器之前,acceptor为 nil。在服务器启动后(即使它随后被停止),它也不再为零。started-p 测试检查是否启动了已初始化的 easy-acceptor。如果您尝试停止已停止的接受器,则会收到错误消息。

于 2017-10-23T22:31:50.690 回答
2

您调用start.acceptor

如果您使用easy-handlerhunchentoot 附带的基本机制,那将是一个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*)))
于 2013-11-02T16:50:39.470 回答
0
(start (defparameter hunchentoot-listener
         (make-instance 'easy-acceptor
                        :port 4242
                        :document-root #p"/path/to/your/html/")))

将在端口 4242 ( http://localhost:4242/ )上为您提供一个正在运行的 Web 服务器

于 2017-09-11T00:49:42.960 回答