コード例 #1
0
        public void Init(string app_identifier, int server_port, int max_client)
        {
            net_server.AttachStub(c2s_stub);
            net_server.AttachProxy(s2c_proxy);

            net_server.Init(app_identifier, server_port, max_client, kServerTickInterval, false);
            net_server.OnTick += new Action(net_server_OnTick);

            c2s_stub.OnReqLogin   += new C2S.Stub.ReqLoginDelegate(c2s_stub_OnReqLogin);
            c2s_stub.OnReqLogout  += new C2S.Stub.ReqLogoutDelegate(c2s_stub_OnReqLogout);
            c2s_stub.OnReqSend    += new C2S.Stub.ReqSendDelegate(c2s_stub_OnReqSend);
            c2s_stub.OnHeartbeat  += new C2S.Stub.HeartbeatDelegate(c2s_stub_OnHeartbeat);
            c2s_stub.OnReqSendAll += new C2S.Stub.ReqSendAllDelegate(c2s_stub_OnReqSendAll);
        }
コード例 #2
0
ファイル: AMFGateway.cs プロジェクト: saggelopoulos/AMFCore
        /// <summary>
        /// Initializes the module and prepares it to handle requests.
        /// </summary>
        public void Init()
        {
            //http://support.microsoft.com/kb/911816
            // Do this one time for each AppDomain.
            if (!_initialized)
            {
                lock (_objLock)
                {
                    if (!_initialized)
                    {
                        _initialized = true;
                    }
                }
            }

            AMFWebContext.Initialize();

            if (messageServer == null)
            {
                lock (_objLock)
                {
                    if (messageServer == null)
                    {
                        messageServer = new MessageServer();
                        try
                        {
                            messageServer.Init();
                            messageServer.Start();
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
            }
        }
コード例 #3
0
        /// <summary>
        /// Initializes the module and prepares it to handle requests.
        /// </summary>
        /// <param name="application">An HttpApplication that provides access to the methods, properties, and events common to all application objects within an ASP.NET application.</param>
        public void Init(HttpApplication application)
        {
            //http://support.microsoft.com/kb/911816
            // Do this one time for each AppDomain.
            if (!_initialized)
            {
                lock (_objLock)
                {
                    if (!_initialized)
                    {
                        if (Log.IsInfoEnabled)
                        {
                            Log.Info("************************************");
                            Log.Info(__Res.GetString(__Res.Fluorine_Start));
                            Log.Info(__Res.GetString(__Res.Fluorine_Version, Assembly.GetExecutingAssembly().GetName().Version));
                            Log.Info(string.Format("Common language runtime version {0}", Environment.Version));
                            Log.Info("************************************");
                            Log.Info(__Res.GetString(__Res.MessageServer_Create));
                        }
                        try
                        {
                            // See if we're running in full trust
                            new PermissionSet(PermissionState.Unrestricted).Demand();
                            //LinkDemands and InheritenceDemands Occur at JIT Time
                            //http://blogs.msdn.com/shawnfa/archive/2006/01/11/511716.aspx
                            WireAppDomain();
                            RegisterObject();
                        }
                        catch (MethodAccessException) {}
                        catch (SecurityException) {}

                        FluorineWebContext.Initialize();

                        Log.Info(__Res.GetString(__Res.ServiceBrowser_Aquire));
                        try
                        {
                            Type type = ObjectFactory.Locate("FluorineFx.ServiceBrowser.ServiceBrowserRenderer");
                            if (type != null)
                            {
                                _serviceBrowserRenderer = Activator.CreateInstance(type) as IServiceBrowserRenderer;
                                if (_serviceBrowserRenderer != null)
                                {
                                    Log.Info(__Res.GetString(__Res.ServiceBrowser_Aquired));
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Log.Fatal(__Res.GetString(__Res.ServiceBrowser_AquireFail), ex);
                        }

                        try
                        {
                            _messageServer = new MessageServer();
                            string[] possibleConfigFolderPaths = new string[PossibleConfigFolderNames.Length];
                            for (int i = 0; i < PossibleConfigFolderNames.Length; i++)
                            {
                                string configPath = Path.Combine(HttpRuntime.AppDomainAppPath, PossibleConfigFolderNames[i]);
                                possibleConfigFolderPaths[i] = configPath;
                            }
                            _messageServer.Init(possibleConfigFolderPaths, _serviceBrowserRenderer != null);
                            _messageServer.Start();
                            Log.Info(__Res.GetString(__Res.MessageServer_Started));
                            HttpContext.Current.Application[FluorineMessageServerKey] = _messageServer;
                        }
                        catch (Exception ex)
                        {
                            Log.Fatal(__Res.GetString(__Res.MessageServer_StartError), ex);
                        }

                        _handlers.Add(new AmfRequestHandler(this));
                        _handlers.Add(new StreamingAmfRequestHandler(this));
                        _handlers.Add(new RtmptRequestHandler(this));
                        _handlers.Add(new JsonRpcRequestHandler(this));
                        _initialized = true;
                    }
                }
            }

            //Wire up the HttpApplication events.
            //
            //BeginRequest
            //AuthenticateRequest
            //AuthorizeRequest
            //ResolveRequestCache
            //A handler (a page corresponding to the request URL) is created at this point.
            //AcquireRequestState ** Session State **
            //PreRequestHandlerExecute
            //[The handler is executed.]
            //PostRequestHandlerExecute
            //ReleaseRequestState
            //Response filters, if any, filter the output.
            //UpdateRequestCache
            //EndRequest

            application.BeginRequest += ApplicationBeginRequest;
            if (!FluorineConfiguration.Instance.FluorineSettings.Runtime.AsyncHandler)
            {
                application.PreRequestHandlerExecute += ApplicationPreRequestHandlerExecute;
            }
            else
            {
                application.AddOnPreRequestHandlerExecuteAsync(BeginPreRequestHandlerExecute, EndPreRequestHandlerExecute);
            }

            application.AuthenticateRequest += ApplicationAuthenticateRequest;

            //This implementation hooks the ReleaseRequestState and PreSendRequestHeaders events to
            //figure out as late as possible if we should install the filter.
            //The Post Release Request State is the event most fitted for the task of adding a filter
            //Everything else is too soon or too late. At this point in the execution phase the entire
            //response content is created and the page has fully executed but still has a few modules to go through
            //from an ASP.NET perspective.  We filter the content here and all of the javascript renders correctly.
            //application.PostReleaseRequestState += new EventHandler(this.CompressContent);
            application.ReleaseRequestState   += ApplicationReleaseRequestState;
            application.PreSendRequestHeaders += ApplicationPreSendRequestHeaders;
            application.EndRequest            += ApplicationEndRequest;
        }
コード例 #4
0
        public void Init(HttpApplication application)
        {
            Exception exception;
            object    obj2;

            if (!_initialized)
            {
                lock ((obj2 = _objLock))
                {
                    if (!_initialized)
                    {
                        try
                        {
                            new PermissionSet(PermissionState.Unrestricted).Demand();
                            this.WireAppDomain();
                        }
                        catch (SecurityException)
                        {
                        }
                        _initialized = true;
                    }
                }
            }
            application.BeginRequest += new EventHandler(this.application_BeginRequest);
            if (!FluorineConfiguration.Instance.FluorineSettings.Runtime.AsyncHandler)
            {
                application.PreRequestHandlerExecute += new EventHandler(this.application_PreRequestHandlerExecute);
            }
            else
            {
                application.AddOnPreRequestHandlerExecuteAsync(new BeginEventHandler(this.BeginPreRequestHandlerExecute), new EndEventHandler(this.EndPreRequestHandlerExecute));
            }
            application.AuthenticateRequest   += new EventHandler(this.application_AuthenticateRequest);
            application.ReleaseRequestState   += new EventHandler(this.application_ReleaseRequestState);
            application.PreSendRequestHeaders += new EventHandler(this.application_PreSendRequestHeaders);
            application.EndRequest            += new EventHandler(this.application_EndRequest);
            FluorineWebContext.Initialize();
            if (serviceBrowserRenderer == null)
            {
                lock ((obj2 = _objLock))
                {
                    if (serviceBrowserRenderer == null)
                    {
                        try
                        {
                            LogManager.GetLogger(typeof(FluorineGateway)).Info(__Res.GetString("ServiceBrowser_Aquire"));
                        }
                        catch
                        {
                        }
                        try
                        {
                            Type type = ObjectFactory.Locate("FluorineFx.ServiceBrowser.ServiceBrowserRenderer");
                            if (type != null)
                            {
                                serviceBrowserRenderer = Activator.CreateInstance(type) as IServiceBrowserRenderer;
                                if (serviceBrowserRenderer != null)
                                {
                                    try
                                    {
                                        LogManager.GetLogger(typeof(FluorineGateway)).Info(__Res.GetString("ServiceBrowser_Aquired"));
                                    }
                                    catch
                                    {
                                    }
                                }
                            }
                        }
                        catch (Exception exception2)
                        {
                            exception = exception2;
                            try
                            {
                                LogManager.GetLogger(typeof(FluorineGateway)).Fatal(__Res.GetString("ServiceBrowser_AquireFail"), exception);
                            }
                            catch
                            {
                            }
                        }
                    }
                }
            }
            if (messageServer == null)
            {
                lock ((obj2 = _objLock))
                {
                    if (messageServer == null)
                    {
                        try
                        {
                            ILog logger = LogManager.GetLogger(typeof(FluorineGateway));
                            logger.Info("************************************");
                            logger.Info(__Res.GetString("Fluorine_Start"));
                            logger.Info(__Res.GetString("Fluorine_Version", new object[] { Assembly.GetExecutingAssembly().GetName().Version }));
                            logger.Info("************************************");
                            logger.Info(__Res.GetString("MessageServer_Create"));
                        }
                        catch
                        {
                        }
                        messageServer = new MessageServer();
                        try
                        {
                            string configPath = Path.Combine(Path.Combine(HttpRuntime.AppDomainAppPath, "WEB-INF"), "flex");
                            messageServer.Init(configPath, serviceBrowserRenderer != null);
                            messageServer.Start();
                            try
                            {
                                LogManager.GetLogger(typeof(FluorineGateway)).Info(__Res.GetString("MessageServer_Started"));
                            }
                            catch
                            {
                            }
                            HttpContext.Current.Application["__@fluorinemessageserver"] = messageServer;
                        }
                        catch (Exception exception3)
                        {
                            exception = exception3;
                            try
                            {
                                LogManager.GetLogger(typeof(FluorineGateway)).Fatal(__Res.GetString("MessageServer_StartError"), exception);
                            }
                            catch
                            {
                            }
                        }
                    }
                }
            }
        }