簡體   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