gpt4 book ai didi

scala - 使用 Akka 在 Scala 上使用 SSL 的 TCP 套接字

转载 作者:可可西里 更新时间:2023-11-01 02:33:05 26 4
gpt4 key购买 nike

使用 Scala 2.10 和 Akka 2.3.4,我组装了一个简单的代理服务器,它接受传入的 TCP 连接,然后将这些消息代理到远程服务器。一切都在使用纯文本,但我坚持使用 SSL。

简而言之,这就是我为传入连接启动非安全服务器的方式:

val server = system.actorOf(Props(new LegacyTCPServer), name = "my-tcp-server")

implicit val bindingTimeout = Timeout(1.second)
import system.dispatcher // execution context for the future

val boundFuture = IO(Tcp) ? Tcp.Bind(server, endpoint)

boundFuture.onSuccess { case Tcp.Bound(address) =>
println("Fantastic! We have a connection: " + address)
}

我可以通过 telnet 连接到这个服务器,但现在我想移动 no 到 opensl。我想一定有一些配置选项,但我似乎无法从文档中解析它:http://doc.akka.io/docs/akka/2.3.4/scala.html

我已经看到一些使用 akka 2.2.x 的(非功能性)示例,这些示例使用 TCPPipelineHandler,例如,

https://groups.google.com/forum/#!topic/akka-user/auErrrk9wS0

https://github.com/betehess/ping-pong-bot/blob/master/app/ircbot/IrcClient.scala#L183

但是 TCPPipelineHandler 似乎并不存在于 akka 2.3.x 中,所以这感觉像是死胡同。

如果有人可以提供一个示例,说明如何使用当前版本的 Scala 和 Akka 通过 ssl 设置 tcp 套接字,我将非常高兴。

如果您想了解更多信息,请告诉我。谢谢!

最佳答案

spray 是构建在 Akka IO 之上的 HTTP 服务器/客户端。

有一个pipelining infrastructure"io.spray"% "spray-io"% "1.3.1" 包中的 SslTlsSupport。我在一个项目中使用它,我目前正在努力。更多细节请看spray中HttpServerConnection是如何配置的。

您需要重构您的代码以使用来自 spray 的管道,根据我的经验,如果您将代码分成多个阶段,每个阶段负责一小部分,代码会变得容易得多。

关于scala - 使用 Akka 在 Scala 上使用 SSL 的 TCP 套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25797965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com