运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

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

运维开发网 https://www.qedev.com 2020-07-24 17:33 出处:网络 作者:运维开发网整理
使用 Scala 2.10和Akka 2.3.4,我将一个简单的代理服务器放在一起,接受传入的TCP连接,然后将这些消息代理到远程服务器.事情正在使用纯文本,但我坚持使用SSL. 简而言之,这是我为传入连接启动非安全服务器的方式: val server = system.actorOf(Props(new LegacyTCPServer), name = "my-tcp-server") imp
使用 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& amp;来提供在ssl上设置tcp套接字的示例,我会很高兴.阿卡.

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

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

在“io.spray”%“spray-io”%“1.3.1”包中有一个pipelining infrastructure和SslTlsSupport.我在一个项目中使用它,我正在努力.有关详细信息,请参阅如何在喷涂中为HttpServerConnection配置它.

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

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消