示例#1
0
 /// <summary>
 /// Отправка значений подписчикам
 /// </summary>
 /// <param name="updateTree">True, если клиенту необходимо обновить структуру дерева, False в противном случае</param>
 private void PushValuesToClients(bool updateTree = false)
 {
     ValuesPusherComet.SetEvent(new UpdateInfo {
         ChangedValues = new List <BaseObject>(_changedValues), UpdateObjectTree = updateTree
     });
     _changedValues.Clear();
 }
示例#2
0
        public Stream GetChanges()
        {
            var    arg      = new UpdateInfo();
            string clientId = Guid.NewGuid().ToString();

            ValuesPusherComet.RegisterCometInstance(clientId, this);

            if (_ev.WaitOne(Comet.TimeOut))
            {
                lock (typeof(Comet))
                {
                    arg = _message;
                }
            }

            Comet.UnregisterCometInstance(clientId);
            var myResponseBody = JsonConvert.SerializeObject(arg);

            WebOperationContext.Current.OutgoingResponse.ContentType = "application/json; charset=utf-8";
            return(new MemoryStream(Encoding.UTF8.GetBytes(myResponseBody)));
        }