Make server start and stop (start on a default or given port)

This commit is contained in:
Michael Bykovski
2017-07-08 12:15:41 +02:00
parent 203bd54167
commit 1459752b0d
6 changed files with 108 additions and 14 deletions
+3
View File
@@ -0,0 +1,3 @@
#import "GCDWebServer.h"
#import "GCDWebServerDataRequest.h"
#import "GCDWebServerDataResponse.h"
-1
View File
@@ -1 +0,0 @@
#import "GCDWebServer.h"
+35 -7
View File
@@ -1,19 +1,47 @@
@objc(Webserver) class Webserver : CDVPlugin {
var webServer: GCDWebServer = GCDWebServer()
var request_ids: [String] = []
var webServer = GCDWebServer()
override func pluginInitialize() {
self.request_ids = []
self.webServer = GCDWebServer()
self.initHTTPRequestHandlers()
}
func initHTTPRequestHandlers() {
for methodType in ["GET", "POST", "PUT", "PATCH", "DELETE"] {
self.webServer.addDefaultHandler(
forMethod: methodType,
request: GCDWebServerDataRequest.self,
processBlock: {
(request) -> GCDWebServerResponse in
let json = ["hello": "world"]
print((request as! GCDWebServerDataRequest).jsonObject as Any)
let response = GCDWebServerDataResponse(jsonObject: json)
return response!
}
)
}
}
func start(_ command: CDVInvokedUrlCommand) {
self.request_ids.append("Hi")
for request_id in self.request_ids {
print(request_id)
var port = 8080
let portArgument = command.argument(at: 0)
if portArgument != nil {
port = portArgument as! Int
}
self.webServer.start(withPort: UInt(port), bonjourName: nil)
let pluginResult = CDVPluginResult(status: CDVCommandStatus_OK)
self.commandDelegate!.send(pluginResult, callbackId: command.callbackId)
}
func stop(_ command: CDVInvokedUrlCommand) {
if self.webServer.isRunning {
self.webServer.stop()
}
print("Stopping webserver")
let pluginResult = CDVPluginResult(status: CDVCommandStatus_OK)
self.commandDelegate!.send(pluginResult, callbackId: command.callbackId)
}