使用Play Framework作为组件

wiz*_*lus 5 scala playframework

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

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

application.conf:

play.server.http.port=8000
http.port=8000
Run Code Online (Sandbox Code Playgroud)

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)
}
Run Code Online (Sandbox Code Playgroud)

build.sbt:

libraryDependencies += "com.typesafe.play" %% "play" % "2.5.0-M1"
Run Code Online (Sandbox Code Playgroud)

输出:

[info] play.api.Play - Application started (Dev)
Run Code Online (Sandbox Code Playgroud)

你可以在这里下载代码:github.com/alancnet/playtest

wiz*_*lus 3

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

网络服务器.scala:

  play.core.server.NettyServer.fromApplication(
    application
  )
Run Code Online (Sandbox Code Playgroud)

构建.sbt:

libraryDependencies += "com.typesafe.play" %% "play-netty-server" % "2.5.0-M1"
Run Code Online (Sandbox Code Playgroud)

输出:

[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
Run Code Online (Sandbox Code Playgroud)

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