public AliveClient(HKAsyncRequest result) { this.result = result; //建立一个ID //this.sessionId = Guid.NewGuid().ToString().Replace("-", "") + DateTime.Now.Millisecond.ToString(); //先写死 this.sessionId = "1234567890"; }
public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData) { context.Response.Cache.SetCacheability(HttpCacheability.NoCache); string value = context.Request.Params.Get(DATAFIELD); //这里传过来的是SessionId,不是数据,数据不做重复Parse //用sessionId去缓存中找对应的会话,并填充异步AsyncResult HKAsyncRequest result = new HKAsyncRequest(context, cb, extraData); string error = null; if (String.IsNullOrEmpty(value)) { error = "500 SessionId is null"; context.Response.StatusCode = 500; logger.Error(error); result.Send(error); return(result); } List <AliveClient> acs = AsyncManager.Sessions.FindAll(x => x.SessionId.Equals(value)); if (acs == null || acs.Count == 0) { error = "404 SessionId:" + value + " has no connection."; context.Response.StatusCode = 404; logger.Debug(error); result.Send(error); return(result); } AliveClient ac = acs.First(); ac.Result = result; //执行命令 return(result); }