问题标签 [akka-io]

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 回答
791 浏览

scala - 使用 Akka-IO TCP 初始化 akka actor

使用 Akka-IO TCP,在 actor 中建立连接的过程如下:

您发送一条Connect消息IO(Tcp)并期望收到一条CommandFailed或一条Connected消息。

现在,我的目标是创建一个包装 TCP 连接的参与者,但我希望我的参与者仅在建立连接后才开始接受消息 - 否则,在等待Connected消息时它将开始接受查询但没有人可以发送他们到。

我尝试了什么:

我的第一个receive是期待一条Initialize会触发整个连接过程的虚构消息,一旦完成,发送者就会Initialize收到一条成功消息并且知道它可以知道开始发送查询。

我对它不是很满意,它迫使我创造我的演员

而且它不会非常“重启”友好。

有什么想法可以保证我的演员在 Tcp 层回复之前不会开始从邮箱接收消息Connected吗?

0 投票
1 回答
230 浏览

akka - 如何使用 Akka IO(Http) 获得高出站并发

鉴于:

如果我这样做:

我希望代码会触发 25 个异步请求。相反,会发生四个请求。他们等待回应。当对所有 4 个的响应都返回时,再发送 4 个,直到所有 25 个都被处理。

我尝试使用 Spray 的配置进行调整以创建自定义调度程序,但这没有效果......

如何配置 Akka/Spray 以异步发送所有 25 个请求?

使用:Akka 2.2.3、Spray 1.2.0

0 投票
1 回答
1193 浏览

scala - 为什么使用 Akka TCP 1 分钟后连接会自动关闭?

我正在使用 Scala 和 Akka 演员编写一个 Interactive Broker API。

我有一个客户端参与者,它连接到服务器并与 IO 管理器通信以发送请求并接收来自 TWS 的响应。连接工作正常,我能够发送请求并获得响应。

然后我会在 1 分钟后自动收到来自 IO 管理器的 PeerClosed 消息。我希望连接保持打开状态,除非我明确关闭它。我试图设置keepOpenOnPeerClosed = true,但它没有任何改变。

这是演员:

如果我使用 IBJts API 连接(使用标准 Java 套接字),我没有相同的行为

0 投票
1 回答
342 浏览

scala - 您可以刷新或重新显示未刷新的 telnet 输入吗?

我正在编写一个老式的基于文本的 telnet 服务器,现在它是一个在 Scala 中具有基于 Akka actor 的 IO 的美化聊天室。正在发生的事情是客户端将开始输入某些内容,然后会发生一个事件,当它被写入时,它会清除任何已经输入的内容。在以下示例中,Tom 开始输入“说你好吗?” 但是 Fred 在他只输入了“say How ar”之后就到达了,并且这个输入被清除了:

有什么方法可以让 telnet 重新显示它尚未刷新的输出缓冲区?

这是服务器:

这是 ConnectionHandler,它是伴随对象,以及它使用的消息案例类:

0 投票
2 回答
514 浏览

java - 管道是否从 akka i/o 中删除?

在学习如何使用 akka I/OI 时,我试图在 akka i/o 之上实现一个简单的协议,并遵循此处的文档。

但是在我的 gradle 文件中,我使用 2.3.9 版本,如下所示

导入一些特定于管道的东西,比如

generate 无法解决符号错误。

因此我的问题。

  1. 是这些被删除还是我需要添加到我的 gradle 文件中的一些依赖项。
  2. 如果它们被删除,编码/解码阶段将如何处理?
0 投票
1 回答
886 浏览

scala - 带 TLS 的 Akka 2.4 TCP

我试图弄清楚如何将 TLS(或 SSL)与 Akka IO 一起使用。我意识到管道的东西已经从 Akka 中删除了。他们提到他们将在 Akka 的 2.4 版本中提供一些闪亮和新的东西,但我在文档中看不到任何内容,也找不到任何示例。

如何为 Akka Tcp 服务器启用 TLS?

谢谢!

0 投票
1 回答
822 浏览

akka - 在 Akka 集群中发送大消息(> 200MB)

我必须在 akka-cluster 中从一个参与者向多个参与者发送大小约为 200MB 的大消息。我曾尝试使用 akka 消息传递,但它会超时,因为它需要很长时间。

实现这一点的最佳方法是什么?我在某处读到我们需要使用 Akka IO 来完成此类任务,但我找不到足够的文档来说明如何使用它。

0 投票
2 回答
809 浏览

scala - 来自 ByteString 的反序列化案例类

我使用以下方式发送案例类:

然后我收到:

有没有简单的方法来匹配 MyCaseClass 上的数据而不使用低级 java 序列化程序?

0 投票
1 回答
668 浏览

akka - 如何使用 Tcp 增加 Akka IO 中的 Tcp Chunk 大小

我正在使用 Akka-Cluster 并通过 Tcp 使用 Akka IO 通过网络发送大型对象。数据被切割成非常小的块。通过 'Received' 消息接收到的数据 ByteString 的大小非常小(大约 7KB)。是否有任何配置设置可以让我一次发送和接收更大的字节字符串?

0 投票
1 回答
127 浏览

scala - 将数据从演员流式传输到播放结果

我有数据以块的形式到达演员,并希望将这些块作为流返回Play Result。由于获得响应的唯一方法Ok.stream看起来像是理想的候选人,因此如下所示:

我会Enumerator[Array[Byte]]从我的演员那里返回一个,然后在演员内部继续将块推入枚举器,因为消息到达演员。然而:从一个演员返回一个可变的枚举器绝对看起来像是某种违反。

有没有更合适的方法来做到这一点?我想要么akka-streamakka.io将是可能解决问题空间的抽象,但我看不出它们将如何应用。