lisp - sw-http 中关于 APPLICATION-FINDER-FN 的详细信息

标签 lisp common-lisp comet

我想在 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/

相关文章:

asp.net - AJAX Comet - Microsoft 是否正在开发或支持任何解决方案以使其具有可扩展性?

http - 我如何通过 Guile Scheme 检查 URL 是否存在?

lisp - 使用 parenscript 设置间隔函数

macros - 将其翻译成 Common Lisp

lisp - 在 Common Lisp 中构建动态 COND 子句

lisp - Lisp中递归函数调用的堆栈溢出

Lisp - 将所有元素增加一个数字

jquery - 与 Spring MVC 框架的 Atmosphere 集成 :

java - 有关 DWR 的更多详细信息?

方案 - 不带外括号的 cdr