Socko is an embedded Scala web server powered by Netty networking and Akka processing.
Please see our web site for documentaiton and more information
object HelloApp extends Logger {
//
// STEP #1 - Define Actors and Start Akka
// See `HelloHandler`
//
val actorSystem = ActorSystem("HelloExampleActorSystem")
//
// STEP #2 - Define Routes
// Dispatch all HTTP GET events to a newly instanced `HelloHandler` actor for processing.
// `HelloHandler` will `stop()` itself after processing each request.
//
val routes = Routes({
case GET(request) => {
actorSystem.actorOf(Props[HelloHandler]) ! request
}
})
//
// STEP #3 - Start and Stop Socko Web Server
//
def main(args: Array[String]) {
val webServer = new WebServer(WebServerConfig(), routes, actorSystem)
webServer.start()
Runtime.getRuntime.addShutdownHook(new Thread {
override def run { webServer.stop() }
})
System.out.println("Open your browser and navigate to http://localhost:8888")
}
}
/**
* Hello processor writes a greeting and stops.
*/
class HelloHandler extends Actor {
def receive = {
case event: HttpRequestEvent =>
event.response.write("Hello from Socko (" + new Date().toString + ")")
context.stop(self)
}
}
-
We are currently using Eclipse 3.7 Indigo with Scala IDE nightly build
-
We are currently using Scala 2.9.1 and JDK7. You can also use JDK6 but SPDY will not be supported.
-
Generate eclipse project files:
sbt eclispse
-
Start
Eclipse
-
From the top menu, select
File
|Import
- Select
General
|Existing Projects into Workspace
. - Click
Next
. - Select the
socko
source code directory as the root - Should see
socko-examples
andsocko-webserver
underProjects
- Click
Finish
- Select
-
To run the scalatest unit test cases, just right click on a test class file and select
Run As JUnit Test
.
If you have a question or need help, please open a ticket in our [Issues Register] (https://github.com/mashupbots/socko/issues).