Takuya71 のぶろぐ

外資系ソフトウェア会社で働いてます、認定スクラムマスター

unfiltered で 0.0.0.0 で listen するのは apply

仕事で テスト用の HTTPサーバを使うことがあったので、 unfiltered を使ってみたのですが
その際に起動するポートと listen するIPについての覚書。

サンプルだと 127.0.0.1 で起動するので
どうやったら 0.0.0.0 で listen する状態で起動できるのか 調べてみたのですが
といっても jetty の server 部分のソースを見ただけですが

Http オブジェクトは apply(port:Int) で 0.0.0.0 で起動するようです。

object Http {
  /** bind to the given port for any host */
  def apply(port: Int): Http = Http(port, "0.0.0.0")
  /** bind to a the loopback interface only */
  def local(port: Int) = Http(port, "127.0.0.1")
  /** bind to any available port on the loopback interface */
  def anylocal = local(unfiltered.util.Port.any)
}
  • 127.0.0.1 の ランダムなポートで起動する場合
unfiltered.jetty.Http.anylocal.filter(echo).run()
  • 127.0.0.1 の 指定したポートで起動する場合
unfiltered.jetty.Http.local(8888).filter(echo).run()
  • 0.0.0.0 の 指定したポートで起動する場合
unfiltered.jetty.Http.apply(8888).filter(echo).run()