Lisp 有关sw http中APPLICATION-FINDER-FN的详细信息
我想用CommonLisp做一些同步的web编程,我正在收集选项。其中之一是“为AJAX/Comet定制的HTTP服务器”。文档似乎有点缺乏,因为我能找到的唯一一篇文章告诉你 子类服务器,并将APPLICATION-FINDER-FN插槽设置为回调 这将生成您的内容 似乎没有任何关于回调应该是什么样子的注释或示例(一些prodding告诉我,它应该期望一个Lisp 有关sw http中APPLICATION-FINDER-FN的详细信息,lisp,common-lisp,comet,Lisp,Common Lisp,Comet,我想用CommonLisp做一些同步的web编程,我正在收集选项。其中之一是“为AJAX/Comet定制的HTTP服务器”。文档似乎有点缺乏,因为我能找到的唯一一篇文章告诉你 子类服务器,并将APPLICATION-FINDER-FN插槽设置为回调 这将生成您的内容 似乎没有任何关于回调应该是什么样子的注释或示例(一些prodding告诉我,它应该期望一个服务器和一个连接作为参数,但没有关于它应该返回或执行什么操作的说明) 将其设置为类似于 (lambda (server conn) (decl
服务器
和一个连接
作为参数,但没有关于它应该返回或执行什么操作的说明)
将其设置为类似于
(lambda (server conn) (declare (ignore server conn)) "Hello world")
似乎什么都不做,所以我假设我要么需要在某个地方写入流,要么以不太明显的方式与服务器
/连接
交互
有什么提示吗?处理程序接受一个
连接
,该连接有一个响应
,其中有一些块
假设您要将内容添加到连接的响应的块中(即八位字节)。幸运的是,已经定义了一些帮助器方法来简化这一过程
您可以尝试以下方法(我无法编译SW-HTTP,因此无法):
祝你好运 处理程序接受一个连接
,该连接有一个响应
,该响应有一些块
假设您要将内容添加到连接的响应的块中(即八位字节)。幸运的是,已经定义了一些帮助器方法来简化这一过程
您可以尝试以下方法(我无法编译SW-HTTP,因此无法):
祝你好运 显然,您必须写入连接流
。但是看看sw-http
代码,我不建议在生产中使用它,尽管它可能值得研究一种在它之上开发东西的方法……我相信Hunchentoot是当今酷孩子们使用的常见Lisp web服务器。另外,我想我同意@VsevolodDyomkin,这个图书馆还没有准备好迎接黄金时间。@Samuel-Aware,但是AFAIK。诚然,自那条评论以来,情况可能有所改变,但仍然如此。哦,当然,现在我想起来,这是有道理的。显然,你必须写入连接流。但是看看sw-http
代码,我不建议在生产中使用它,尽管它可能值得研究一种在它之上开发东西的方法……我相信Hunchentoot是当今酷孩子们使用的常见Lisp web服务器。另外,我想我同意@VsevolodDyomkin,这个图书馆还没有准备好迎接黄金时间。@Samuel-Aware,但是AFAIK。诚然,自那次评论以来,这可能已经改变了,但仍然如此。哦,当然,我现在想起来,这是有道理的。是从特定的包中排队
,还是应该是sw http
?@Inaimathi的一部分的一个概念函数,这可能是aromyxo的队列推送,而论点的顺序正好相反。抱歉。我暂时接受这个,但它还没有真正起作用(我明天会再玩一些,然后公布结果)。谢谢:)是来自特定软件包的排队
,还是应该是sw http
?@Inaimathi的一个概念函数,可能是aromyxo的队列推送,参数的顺序相反。抱歉。我暂时接受这个,但它还没有真正起作用(我明天会再玩一些,然后公布结果)。谢谢:)
(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)))