// ReSharper disable once UnusedParameter.Local private static async Task Main(string[] args) { Console.WriteLine("Hello World!"); var channel = new SignalRChannel("https://localhost:44350/test", new ClientBridge(), new TestLogWriter()); channel.Changed += x => { Console.WriteLine($"Changed: {x.ConnectionState}"); }; channel.Advised += x => { Console.WriteLine($"Advised: {x.Message}"); }; await channel.Start(); await channel.InvokeAsync("notifymessage", "Hello World"); await channel.InvokeAsync("doclientstuff", "doclientstuff", "Calling doClientStuff"); await channel.InvokeAsync("doguidtest", "Calling doGuidTest"); Console.ReadLine(); }
/// <summary> /// 推送消息到订阅者 /// </summary> /// <param name="channel"></param> /// <param name="message"></param> public static void PublishSubscriber(SignalRChannel channel, SignalRMessage message) { try { var sub = RedisManager.GetConnInstance().GetSubscriber(); var received = sub.Publish(channel.ToString(), Json.ToJson(message)); if (received <= 0) { //如果没有订阅者,记录错误日志 LogExtention.Instance().Error(null, channel, message); } } catch (Exception ex) { LogExtention.Instance().Error(ex, channel, message); } }