spray-websocket 项目使用教程
spray-websocketWebSocket for spray-can项目地址:https://gitcode.com/gh_mirrors/sp/spray-websocket
1. 项目的目录结构及介绍
spray-websocket 项目的目录结构如下:
spray-websocket/
├── build.sbt
├── project/
│ ├── build.properties
│ └── plugins.sbt
├── src/
│ ├── main/
│ │ ├── resources/
│ │ └── scala/
│ │ ├── example/
│ │ │ └── SimpleServer.scala
│ │ └── spray/
│ │ └── websocket/
│ │ ├── WebSocketConnection.scala
│ │ ├── WebSocketWorker.scala
│ │ └── package.scala
│ └── test/
│ └── scala/
│ └── spray/
│ └── websocket/
│ └── WebSocketSpec.scala
└── README.md
目录结构介绍
build.sbt
: 项目的构建配置文件。project/
: 包含项目的构建相关配置文件。build.properties
: 指定 SBT 版本。plugins.sbt
: 指定 SBT 插件。
src/
: 源代码目录。main/
: 主代码目录。resources/
: 资源文件目录。scala/
: Scala 代码目录。example/
: 示例代码目录。SimpleServer.scala
: 简单的 WebSocket 服务端示例。
spray/
: spray 相关代码目录。websocket/
: WebSocket 实现代码目录。WebSocketConnection.scala
: WebSocket 连接接口。WebSocketWorker.scala
: WebSocket 工作类。package.scala
: 包对象。
test/
: 测试代码目录。scala/
: Scala 测试代码目录。spray/
: spray 相关测试代码目录。websocket/
: WebSocket 测试代码目录。WebSocketSpec.scala
: WebSocket 测试规范。
README.md
: 项目说明文档。
2. 项目的启动文件介绍
项目的启动文件是 src/main/scala/example/SimpleServer.scala
。这个文件实现了一个简单的 WebSocket 服务端,可以接收并回传文本或二进制帧。
SimpleServer.scala 文件内容
package example
import akka.actor.{ActorSystem, Props}
import akka.io.IO
import spray.can.server.Http
import spray.routing.SimpleRoutingApp
import spray.websocket.WebSocketWorker
object SimpleServer extends App with SimpleRoutingApp {
implicit val system = ActorSystem("spray-websocket-example")
startServer(interface = "localhost", port = 8080) {
path("websocket") {
get {
handleWebSocketMessages(Props[WebSocketWorker])
}
} ~
getFromResourceDirectory(".")
}
}
启动文件介绍
SimpleServer
对象继承自App
和SimpleRoutingApp
,用于启动 WebSocket 服务。startServer
方法用于启动 HTTP 服务器,监听localhost
的 8080 端口。path("websocket")
定义了 WebSocket 的路径。handleWebSocketMessages(Props[WebSocketWorker])
用于处理 WebSocket 消息。getFromResourceDirectory(".")
用于提供静态文件服务。
3. 项目的配置文件介绍
项目的配置文件主要是 build.sbt
和 project/plugins.sbt
。
build.sbt 文件内容
name := "spray-websocket"
version := "0.1.0"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq(
"io.spray" %% "spray-can" % "1.3.4",
"io.spray" %% "spray-routing" % "1.3.4",
"io.spray" %% "spray-testkit" % "1.3.4" % "test",
"com.typesafe.akka" %% "akka-actor" % "2.4.14",
spray-websocketWebSocket for spray-can项目地址:https://gitcode.com/gh_mirrors/sp/spray-websocket