我想在 Common Lisp 中进行一些同步网络编程,并且我正在收集选项。其中之一是 sw-http
,一个“为 AJAX/Comet 量身定制的 HTTP 服务器”。文档似乎有点缺乏,因为我能找到的唯一一 block 告诉你
Sub-class SERVER and set the APPLICATION-FINDER-FN slot to a callback that generates your content.
似乎没有关于回调应该是什么样子的任何注释或示例(一些刺激告诉我它应该期望一个 server
和一个 connection
作为参数,但没有关于它应该返回或做什么的内容)。
将其设置为一些天真的东西
(lambda (server conn) (declare (ignore server conn)) "Hello world")
似乎没有做任何事情,所以我假设我要么需要写入某处的流,要么需要与 server
/connection
进行交互非常明显的方式。
有什么提示吗?
最佳答案
处理程序采用一个连接
,它有一个响应
,它有一些 block
。
大概您要将内容添加到连接<的
。幸运的是,定义了一些辅助方法可以使这更容易。响应
的 block
(即八位字节
)/
你可以试试这个(我无法让 SW-HTTP 编译所以我不能):
(defun hello (server connection)
(let*((response (cn-response connection))
(chunks (rs-chunks response)))
(queue-push chunks
(mk-response-status-code 200)
(queue-push chunks
(mk-response-message-body "Hello cruel world"))))
(defclass my-server (server)
((application-finder-fn :initform #'hello)))
祝你好运!
关于lisp - sw-http 中关于 APPLICATION-FINDER-FN 的详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9388893/