From af631a9b24331dfc025533daab0a6655725db7d8 Mon Sep 17 00:00:00 2001 From: "Crom (Thibaut CHARLES)" Date: Tue, 14 Apr 2015 23:24:56 +0200 Subject: [PATCH] Working basic REST server --- nwn2_ai_onmoduleload/nwn2_ai_onmoduleload.cs | 40 +++++++++++--------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/nwn2_ai_onmoduleload/nwn2_ai_onmoduleload.cs b/nwn2_ai_onmoduleload/nwn2_ai_onmoduleload.cs index c15c02b..2dd5489 100644 --- a/nwn2_ai_onmoduleload/nwn2_ai_onmoduleload.cs +++ b/nwn2_ai_onmoduleload/nwn2_ai_onmoduleload.cs @@ -23,7 +23,8 @@ using NWItemProperty = NWScript.NWScriptEngineStructure4; using System.Threading; using Grapevine.Server; - +using System.IO; +using System.Net; namespace CLRScript { public partial class nwn2_ai_onmoduleload : CLRScriptBase, ICLRScriptImplementation, IGeneratedScriptProgram @@ -49,26 +50,31 @@ namespace CLRScript public Int32 ScriptMain([In] object[] ScriptParameters, [In] Int32 DefaultReturnCode) { - var server = new RESTServer(); + server = new RESTServer("127.0.0.1", "8080", "http", "index.html", "C:\\nowhere", 1); server.Start(); - while (server.IsListening) - { - Thread.Sleep(300); - } - - - int Volume; - - MessageToSpeak = "Hello, world"; - Volume = TALKVOLUME_TALK; - - AssignCommand(OBJECT_SELF, delegate() { ActionSpeakString(MessageToSpeak, Volume); }); + AssignCommand(OBJECT_SELF, delegate() { ActionSpeakString("Start!", TALKVOLUME_TALK); }); + DelayCommand(0.5f, Heartbeat); return DefaultReturnCode; } - - [NWScriptGlobal] - private string MessageToSpeak; + + public void Heartbeat() + { + ActionSpeakString("hb", TALKVOLUME_TALK); + DelayCommand(0.5f, Heartbeat); + } + + + + RESTServer server; + public sealed class MyResource : RESTResource + { + [RESTRoute] + public void HandleAllGetRequests(HttpListenerContext context) + { + SendTextResponse(context, "GET is a success!"); + } + } } }