예제 #1
0
        public Stream GetChanges()
        {
            var    arg      = new List <BaseObject>();
            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)));
        }
예제 #2
0
 private void PushValuesToClients()
 {
     ValuesPusherComet.SetEvent(new List <BaseObject>(_changedValues));
     _changedValues.Clear();
 }