コード例 #1
0
ファイル: IIPoWS.cs プロジェクト: sof9816/esiur-dotnet
        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);
        }
コード例 #2
0
 public virtual void ClientDisconnected(HTTPConnection HTTP)
 {
     //return false;
 }
コード例 #3
0
        /*
         * public virtual void SessionModified(HTTPSession session, string key, object oldValue, object newValue)
         * {
         *
         * }
         *
         * public virtual void SessionExpired(HTTPSession session)
         * {
         *
         * }
         */

        public abstract bool Execute(HTTPConnection sender);