public override bool Execute(HTTPConnection sender) { if (sender.Request.Filename.StartsWith("/iip/")) { // find the service var path = sender.Request.Filename.Substring(5);// sender.Request.Query["path"]; Warehouse.Get(path).Then((r) => { if (r is DistributedServer) { var httpServer = sender.Parent; var iipServer = r as DistributedServer; var tcpSocket = sender.Unassign(); if (tcpSocket == null) { return; } var wsSocket = new WSSocket(tcpSocket); httpServer.RemoveConnection(sender); //httpServer.Connections.Remove(sender); var iipConnection = new DistributedConnection(); // iipConnection.OnReady += IipConnection_OnReady; // iipConnection.Server = iipServer; // iipConnection.Assign(wsSocket); iipServer.AddConnection(iipConnection); iipConnection.Assign(wsSocket); wsSocket.Begin(); } }); return(true); } return(false); }
public virtual void ClientDisconnected(HTTPConnection HTTP) { //return false; }
/* * public virtual void SessionModified(HTTPSession session, string key, object oldValue, object newValue) * { * * } * * public virtual void SessionExpired(HTTPSession session) * { * * } */ public abstract bool Execute(HTTPConnection sender);