///// <summary>基础测试</summary> //public static async void TestBase() //{ // var svr = new MQServer(); // //svr.Server.Log = XTrace.Log; // svr.Start(); // var client = new MQClient(); // client.Log = XTrace.Log; // client.Name = "张三"; // client.Open(); // var user = new MQClient(); // user.Log = XTrace.Log; // user.Name = "李四"; // user.Open(); // //user.Received += (s, e) => // //{ // // XTrace.WriteLine("user.收到推送 {0}", e.Arg); // //}; // await user.Subscribe("新生命团队"); // for (var i = 0; i < 3; i++) // { // await client.Public("测试{0}".F(i + 1)); // } // Console.ReadKey(true); // client.Dispose(); // user.Dispose(); // svr.Dispose(); //} ///// <summary>分离式</summary> //public static void Main() //{ // Console.Write("选择模式 客户端=1,服务端=2 :"); // var mode = Console.ReadKey().KeyChar.ToString().ToInt(); // Console.WriteLine(); // if (mode == 1) // { // Console.Write("用户名:"); // var user = Console.ReadLine(); // Console.Write("主题:"); // var topic = Console.ReadLine(); // if (user.IsNullOrEmpty()) user = "******"; // if (topic.IsNullOrEmpty()) topic = "新生命团队"; // // 创建MQ客户端 // var client = new MQClient(); // client.Log = XTrace.Log; // if (user.Contains("@")) // { // client.Remote.Host = user.Substring("@"); // user = user.Substring(null, "@"); // } // client.Name = user; // client.EnsureCreate(); // client.Client.UserName = "******"; // client.Client.Password = "******"; // client.Open(); // //client.Received += (s, e) => // //{ // // XTrace.WriteLine("user.收到推送 {0}", e.Arg); // //}; // var task = Task.Run(async () => // { // await client.Subscribe(topic); // }); // task.Wait(); // while (true) // { // Console.Write("发布消息:"); // var str = Console.ReadLine(); // if (!str.IsNullOrEmpty()) // { // if (str.EqualIgnoreCase("exit", "quit")) break; // Task.Run(() => client.Public(str)); // } // } // } // else // { // var svr = new MQServer(); // svr.Server.Log = XTrace.Log; // //svr.Server.Anonymous = true; // svr.Start(); // var ns = svr.Server.Servers[0] as NetServer; // while (true) // { // Console.Title = ns.GetStat(); // Thread.Sleep(500); // } // //Console.ReadKey(); // } //} /// <summary>进程型消息队列</summary> public static void Main2() { var host = new MQHost(); host.Log = XTrace.Log; host.Tip = true; host.Subscribe("aaa", "ttt", null, OnMessage); host.Subscribe("bbb", "ttt", "t1||t2", OnMessage); host.Subscribe("ccc", "ttt", "t1||t3", OnMessage, 111); host.Subscribe("ccc", "ttt", "t1||t3", OnMessage, 222); var tags = "t1,t2,t3,t4".Split(","); for (int i = 0; i < 1000; i++) { Console.WriteLine(); host.Send("大石头", "ttt", tags[Rand.Next(tags.Length)], Rand.NextString(16)); Thread.Sleep(1000); } }
/// <summary>实例化</summary> public Topic(MQHost host, String name) { Host = host; Name = name; }