使用Play Framework作为组件

时间:2015-10-23 22:55:01

标签: scala playframework

我试图将Play Framework Web服务器添加为更大的应用程序的一部分,但应用程序的主要目的不是Web服务器。它已经接受了各种连接,包括串口和TCP,但我需要添加WebSockets,而Play Framework的WebSocket接口更可取。 (我们已经尝试过Undertow,并且在其笨重的界面上遇到了太多问题)

我只是创建了一个应用程序并启动它,但我无法连接到它。运行以下代码后,没有任何东西正在侦听端口8000.我需要做什么?

application.conf:

play.server.http.port=8000
http.port=8000

webserver.scala:

def startWebServer = {
  val environment = new Environment(
    new File("/path/to/app"),
    classOf[Dummy].getClassLoader,
    play.api.Mode.Dev
  )
  val context = play.api.ApplicationLoader.createContext(environment)
  val application = ApplicationLoader(context).load(context)

  play.api.Play.start(application)
}

build.sbt:

libraryDependencies += "com.typesafe.play" %% "play" % "2.5.0-M1"

输出:

[info] play.api.Play - Application started (Dev)

您可以在此处下载代码:github.com/alancnet/playtest

1 个答案:

答案 0 :(得分:3)

那只是应用程序。它仍然需要一个主机。添加以下代码:

webserver.scala:

  play.core.server.NettyServer.fromApplication(
    application
  )

build.sbt:

libraryDependencies += "com.typesafe.play" %% "play-netty-server" % "2.5.0-M1"

输出:

[info] play.api.Play - Application started (Dev)
[info] p.c.s.NettyServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

编辑:以下是投入生产的代码:https://gist.github.com/alancnet/68f6e787e1ab96bd1c4a