我试图将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
答案 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