/*
Tesses.RPC A simple RPC library for .NET
Copyright (C) 2023 Mike Nolan
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
using Tesses.WebServer;
using Tesses.RPC;
using CommonExample;
RouteServer svr=new RouteServer();
svr.Add("/",async(e)=>{
Console.WriteLine("Entered");
RPCServer ews=new RPCServer((mhandler)=>{
JsonMessager messager=new JsonMessager(mhandler);
messager.Register(MessageType.Time,(m)=>{
Console.WriteLine($"Client sent time: {m.Data.Time}");
if(m.NeedReply)
{
Console.WriteLine("REPLY");
m.Reply(new Timestamp(){Time = m.Data.Time.AddDays(4)});
}
});
messager.Register(MessageType.Message,(s)=>{
Console.WriteLine($"Client sent message: {s.Data.Text}");
messager.SendMessage(s.Data);
});
messager.SendMessage(new Timestamp(){Time = DateTime.Now});
messager.SendMessage(new Message(){Text="Howdy"});
});
await e.StartEasyWebSocketConnectionAsync(ews);
});
svr.StartServer(4222);