繁体   English   中英

带有Akka的Scala上带有SSL的TCP套接字

[英]TCP socket with SSL on Scala with Akka

使用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

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

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

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

但是在akka 2.3.x中似乎不存在TCPPipelineHandler,所以感觉就像死路一条。

如果有人可以提供一个如何使用当前版本的Scala和Akka在ssl上设置tcp套接字的例子,我会很高兴。

如果您想了解更多信息,请与我们联系。 谢谢!

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

"io.spray" % "spray-io" % "1.3.1"包中有一个流水线基础结构和SslTlsSupport。 我在一个项目中使用它,我正在努力。 有关详细信息,请参阅如何在喷涂中为HttpServerConnection配置它。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM