Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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));
        }