main.swift 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. //
  2. // main.swift
  3. // SwifterOSX
  4. // Copyright (c) 2015 Damian Kołakowski. All rights reserved.
  5. //
  6. import Foundation
  7. import Swifter
  8. let server = try Swifter()
  9. server.get("/") { _, request, responder in
  10. responder(html {
  11. "body" ~ {
  12. "h1" ~ "Hello World !"
  13. }
  14. })
  15. }
  16. server.get("/stream") { _, request, responder in
  17. responder(WebsocketResponse(request) { event in
  18. switch event {
  19. case .text(let value):
  20. print("Got text message: \(value)")
  21. case .binary(let value):
  22. print("Got binary message: \(value)")
  23. case .disconnected(_, _):
  24. print("Peer disconneted")
  25. }
  26. })
  27. }
  28. server.get("/background") { _, _, closure in
  29. if #available(OSXApplicationExtension 10.10, *) {
  30. DispatchQueue.global(qos: .background).async {
  31. // Simulate http request to other service or a database query.
  32. sleep(2)
  33. closure(TextResponse(200, "Waited 2 secs for a response."))
  34. }
  35. } else {
  36. // Fallback on earlier versions
  37. }
  38. }
  39. while true {
  40. try server.loop()
  41. }