47 lines
1.6 KiB
C#
47 lines
1.6 KiB
C#
|
/*
|
|||
|
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 <https://www.gnu.org/licenses/>.
|
|||
|
*/
|
|||
|
using Tesses.RPC;
|
|||
|
using CommonExample;
|
|||
|
JsonMessager<MessageType,IMessage>? messager=null;
|
|||
|
var msghndlr=new WebSocketClientMessageHandler("ws://localhost:4222",()=>{
|
|||
|
if(messager == null) return;
|
|||
|
Thread.Sleep(500);
|
|||
|
messager.SendMessage<Timestamp>(new Timestamp(){Time=new DateTime(1992,8,16)},(t)=>{
|
|||
|
|
|||
|
Console.WriteLine($"Demi Lovato was born on{t.Time.ToShortDateString()}");
|
|||
|
});
|
|||
|
while(true)
|
|||
|
{
|
|||
|
string? text=Console.ReadLine();
|
|||
|
if(!string.IsNullOrWhiteSpace(text))
|
|||
|
{
|
|||
|
messager.SendMessage(new Message{Text = text});
|
|||
|
}
|
|||
|
}
|
|||
|
});
|
|||
|
messager = new JsonMessager<MessageType, IMessage>(msghndlr);
|
|||
|
messager.Register<Message>(MessageType.Message,(m)=>{
|
|||
|
Console.WriteLine($"Server sent message: {m.Data.Text}");
|
|||
|
|
|||
|
});
|
|||
|
messager.Register<Timestamp>(MessageType.Time,(m)=>{
|
|||
|
Console.WriteLine($"Server sent time: {m.Data.Time}");
|
|||
|
|
|||
|
});
|
|||
|
msghndlr.Connect();
|