/// <summary> /// опубликовать сообщение/объект /// </summary> /// <param name="topic">топик</param> /// <param name="command">команда</param> /// <param name="publishingObject">объект, который надо передать в сообщении</param> public SubscriptionMessageCommand Publish <T>(string topic, string command, T publishingObject, long maxMessageId = 0) { //if (publisher_timer == null) //{ // publisher_timer = new DispatcherTimer() { Interval = new TimeSpan(0, 0, 0, 0, 500) }; // publisher_timer.Tick += (s, e) => processOutQueue(); //} //publisher_timer.Stop(); //outQueue.Value.Clear(); var obj = new SubscriptionMessageCommand() { Command = command, JsonObject = fastJSON.JSON.Instance.ToJSON(publishingObject), MaxMessageId = maxMessageId }; outQueue.Value.Add(new Tuple <string, string, object>(topic, command, obj)); //if (outQueue.Value.Count>0) // processOutQueue(); //else // publisher_timer.Start(); if (!publishing) { DoSendOneEvent(); } return(obj); }
/// <summary> /// опубликовать сообщение/объект /// </summary> /// <param name="topic">топик</param> /// <param name="command">команда</param> /// <param name="jsonObject">сериализованный в Json формат объект</param> public void Publish(string topic, string command, string jsonObject) { var message = new SubscriptionMessageCommand { Command = command, JsonObject = jsonObject }; Client.PublishByStringTopicAsync(topic, fastJSON.JSON.Instance.ToJSON(message));//JsonConvert.SerializeObject(message)); }