/* 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 System; using System.Threading; using WebSocketSharp; namespace Tesses.RPC { public class WebSocketClientMessageHandler : MessageHandler { WebSocket client; public WebSocketClientMessageHandler(string url,Action start) { client=new WebSocket(url); client.OnMessage+= (sender,e)=>{ OnMessageReceived(e.Data); }; client.OnOpen += (sender,e)=>{ Thread t=new Thread(()=>{ start?.Invoke(); }); t.Start(); }; } public void Connect() { client.Connect(); } public override void SendMessage(string msg) { client.Send(msg); } } }