问题标签 [aleph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
500 浏览

clojure - 为什么 Aleph 的 HTTP 服务器不做任何事情?

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

显然它非常简单,并且非常接近 Aleph 文档中给出的示例。它编译得很好,但是当我(通过lein run)运行它时,它只是......什么都不做。程序立即退出;显然它不会监听端口 8005 或类似的端口。我在这里想念什么?显然,在 Aleph 中启动服务器必须做其他事情。

0 投票
1 回答
125 浏览

clojure - 如何在 aleph 的上下文中获取歧管总线的指标

给定使用 Aleph/Manifold 创建的总线,您如何测量吞吐量、延迟、错误数和超时等有趣的指标?

0 投票
1 回答
197 浏览

multithreading - 为每个请求分配线程

我迷失了所有这些异步/多线程库和本机 clojure 功能。

我有一个 web 服务,它调用一个外部 API,转换它的响应,然后返回给客户端。现在是用 Python 编写的。我想让每个客户端在一个单独的线程中执行它的请求,这样他们就不会等待对方完成,或者服务器异步。不涉及繁重的计算,只等待IO。

我认为使用 clojure 会很容易,但我错过了一些东西...... Aleph 是异步服务器,对吗?但是,当我模拟wait内部请求处理程序时,整个服务器都在等待,而不仅仅是客户端。所以我不太明白这里异步的意义?

据我了解,这可能是错误的,异步服务器永远不会阻塞 IO 操作?可能sleep是模拟等待 IO 的坏方法?

编辑我创建了一个愚蠢的等待服务,我从 Clojure 的 Aleph 服务器调用它,但请求处理仍然是顺序的

0 投票
1 回答
1063 浏览

java - 续订时如何让 Netty 服务器重新加载 TLS 证书?

我有一个基于 Netty 的服务器,它使用 PEM 编码的证书文件,这些证书文件会定期重新发布(由 Let's Encrypt 发行)。Netty 完全支持加载 PEM 加密材料,但是稍后重新颁发证书(.cer 文件)时,需要重新启动服务器才能看到。

到目前为止,我已经通过添加一个自定义通道初始化处理程序来处理这个问题,以添加重新加载证书的逻辑并添加一个从中构建的适当 SSLHandler。但现在我想使用 Aleph,它需要一个用于 TLS 的 Netty SSLContext 对象。

随着 Let's Encrypt 及其相对短暂的证书的日益普及,这似乎是一个热门和普遍的问题,我想妥善解决它。这意味着一种与 Netty 兼容的方式来创建 SSLContext,如果它们在磁盘上发生更改,它将重新加载其证书。

我想出的一些方法:

  1. 创建一个动态信任管理器/信任存储,然后将其插入 Netty SSLContextBuilder。可以使用这是一个起点https://jcalcote.wordpress.com/2010/06/22/managing-a-dynamic-java-trust-store/,并获取一些代码以编程方式加载密钥/证书从 PEM 获取 KeyStore(Netty 的 PEM -> KeyStore 逻辑在 SSLContext 类中是不公开的)。好处:也可以在 Netty 之外工作。缺点:复杂且不重用 Netty 的现有逻辑来加载 PEM 密钥和证书。

  2. 将此添加为 Netty 支持的选项。

谁能指出我的解决方案,或提出构建解决方案的最佳方法?

0 投票
0 回答
22 浏览

database - 是否可以开发自定义 ALEPH 客户端,这样我就不必使用 OPAC?

我大学的图书馆使用 ALEPH 500 作为数据库。它有一个旧的、不适合移动设备的网站来查询图书信息。

我最近了解到,使用 ODBC 或 JDBC 等工具,我们可以创建网站和应用程序来连接数据库,例如 MySQL。

这让我想到ALEPH是否有类似的连接方法,可以用来查询信息,所以我可以编写一些简单的代码来制作一个访问uni库DB的移动客户端。

0 投票
1 回答
809 浏览

clojure - 克洛朱尔。Http流文件

我想流式传输大型二进制文件(exe、jpg、...、所有类型的文件)。看来aleph客户端可以做到。看了官方的示例,明白了如果我们将惰性序列传递给body,响应可以传递一个流。

我有以下代码:

我得到了 uri 并尝试用块读取文件。我想这样做是因为文件可能约为 3 GB。所以,我所期望的是应用程序不会使用比块大小更多的内存。但是当我为应用程序设置 1GB(-Xmx 选项)时,它占用了所有内存(1 GB)。为什么要占用 1GB?JVM 是否以这种方式工作?当我有 100 个同时连接(例如,每个文件为 3GB)时,我得到 OutOfMemoryError。

任务是使用块“流式传输”文件以避免 OutOfMemoryError。

0 投票
1 回答
133 浏览

php - 使用 PHP 访问 Aleph API,总是得到错误“没有为查询指定模式”。

我正在尝试访问 OCCRP Aleph API

https://redocly.github.io/redoc/?url=https://aleph.occrp.org/api/openapi.json

使用以下 PHP 程序

我总是收到错误“没有为查询指定架构”。

当我打电话给统计时,我得到了一个正确的答案......

0 投票
0 回答
59 浏览

websocket - 如何在 aleph.http/websocket-client 中配置代理?

谁能告诉如何使用clj-commons/aleph "0.4.7-alpha7" 的功能aleph.http/websocket-client设置代理配置

这是我的代码:

0 投票
2 回答
85 浏览

websocket - 向 websocket 发送消息时地址已被使用

我正在使用manifold.stream 库通过websocket 发送消息:

(send)在 repl 作品中运行。但是,当我从客户端发出 http 请求,并将 send 函数作为我的 reitit 路由的处理程序时,我收到错误:

第 142 行指的是:

为什么我的地址已经在使用中?