当前位置: 首页 > 编程笔记 >

clojure 使用http-kit创建新的Ring应用程序

慕容修伟
2023-03-14
本文向大家介绍clojure 使用http-kit创建新的Ring应用程序,包括了clojure 使用http-kit创建新的Ring应用程序的使用技巧和注意事项,需要的朋友参考一下

示例

Ring是用于Clojure HTTP应用程序的事实上的标准API,类似于Ruby的Rack和Python的WSGI。

我们将它与http-kit网络服务器一起使用。

创建一个新的Leiningen项目:

lein new app myapp

将http-kit依赖项添加到project.clj:

  :dependencies [[org.clojure/clojure "1.8.0"]
                 [http-kit "2.1.18"]]

将:requirehttp-kit添加到core.clj:

(ns test.core
  (:gen-class)
  (:require [org.httpkit.server :refer [run-server]]))

定义铃声请求处理程序。请求处理程序只是从请求到响应的函数,响应只是一个映射:

(defn app [req]
  {:status  200
   :headers {"Content-Type" "text/html"}
   :body    "您好HTTP!"})

在这里,对于任何请求,我们只返回200 OK,内容相同。

启动服务器的-main功能:

(defn -main
  [& args]
  (run-server app {:port 8080}))

运行lein run并http://localhost:8080/在浏览器中打开。

 类似资料:
  • 本文向大家介绍clojure 创建一个新的应用程序,包括了clojure 创建一个新的应用程序的使用技巧和注意事项,需要的朋友参考一下 示例 按照上述说明并安装Leiningen后,请运行以下命令来启动新项目: 这将使用该<project-name>文件夹中的默认Leiningen模板设置一个Clojure项目。莱宁根有多个模板,这些模板会影响项目的结构。最常见的是使用的模板“ app”,它添加了

  • 我有一个使用服务器的小型WebSocket应用程序,我对自己感觉很好。现在我想添加不同的“房间”(列表应该是动态的)到我的应用程序,但我很难找到任何文档或示例项目。我并不害怕旋转我自己的解决方案,但依靠别人的经验是很好的。有人知道类似实现的例子吗? 2)我可以在每次打开新房间时建立一个新的套接字endpoint,并将新的URL发送回前端(或者如果房间已经打开了,则发送现有的URL),然后丢弃旧的套

  • 我有一个小Clojure应用程序,它使用http工具包向服务器发送一些http post请求。我希望通过代理P路由https POST请求,即,我希望流量像应用程序一样- (这是因为目标主机X基于IP限制访问) 这可能吗? 此外,该应用程序运行在ubuntu服务器上,是否有可能通过系统级配置使http工具包使用代理服务器?但我更喜欢其他过程不受影响。

  • 我有几个线程在运行,每个线程都对HTTP工具包进行阻塞调用。我的代码一直在工作,但最近大约30分钟后就冻结了。我所有的线程都卡在以下一点上: