首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Aleph的HTTP服务器什么都不做?

为什么Aleph的HTTP服务器什么都不做?
EN

Stack Overflow用户
提问于 2016-09-14 08:18:07
回答 2查看 483关注 0票数 5

我已经使用Clojure的Aleph库编写了一个相对简单的HTTP服务器。这并不是很复杂:

代码语言:javascript
复制
(ns cxpond.xmlrpc.core
  (:gen-class)
  (:require [aleph.http :as http]))

(defn handler [req]
  {:status 200
   :headers {"Content-Type" "text/plain"}
   :body "HELLO, WORLD!"})

(defn -main [& args]
  (http/start-server service/handler {:port 8005}))

显然,它非常简单,并且非常紧跟Aleph的文档中给出的示例。它编译得很好,但是当我运行它(通过lein run)时,它没有just...does任何东西。程序会立即退出;很明显,它不会监听端口8005或类似的端口。这里我漏掉了什么?显然,要在Aleph中启动服务器,我还需要做一些其他的事情。

EN

回答 2

Stack Overflow用户

发布于 2016-09-15 02:04:24

你需要在'start- server‘返回的值上调用’alef.netty/wait-for-close‘来阻塞,直到服务器关闭。

票数 11
EN

Stack Overflow用户

发布于 2016-09-14 09:28:54

-main /start-server不阻塞,只是返回一个对象,因此在没有其他事情可做的情况下,http的执行结束,程序结束。

我不使用aleph,也看不到明显的join-like模式。看起来好像必须进行自己的生命周期管理,然后在从start-server返回的对象上调用.close来正常关闭。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39480741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档