public void Init(IceOptions options, IClusterClient orleansClient, IObserverClient observerClient)
        {
            try
            {
                var initData = new Ice.InitializationData();
                //设置日志输出
                if (options.Logger == null)
                {
                    options.Logger = new FootStone.Core.NLogice(NLog.LogManager.GetLogger("Ice"));
                }
                initData.logger     = options.Logger;
                initData.properties = Ice.Util.createProperties();
                initData.properties.load(options.ConfigFile);

                communicator = Ice.Util.initialize(initData);
                var adapter    = communicator.createObjectAdapter("SessionFactoryAdapter");
                var properties = communicator.getProperties();
                var id         = Ice.Util.stringToIdentity(properties.getProperty("Identity"));
                var serverName = properties.getProperty("Ice.ProgramName");
                adapter.add(new SessionFactoryI(serverName, initData.logger), id);
                //添加facet
                foreach (var facet in options.FacetTypes)
                {
                    if (facet.type is IServantBase)
                    {
                        options.Logger.error($"Facet(${facet.type.Name}) must inherit IServantBase!!!");
                        continue;
                    }
                    object[] args        = new object[] { orleansClient, observerClient };
                    var      servant     = (IServantBase)Activator.CreateInstance(facet.type, args);
                    var      intercpetor = new FSInterceptor((Ice.Object)servant, options.Logger);
                    adapter.addFacet(intercpetor, id, facet.name);
                }
                adapter.activate();
                options.Logger.print("Ice inited!");
            }
            catch (Ice.Exception ex)
            {
                options.Logger.error("Ice init failed:" + ex.ToString());
            }
        }
Beispiel #2
0
 public ZonePocol(IClusterClient Client1, IObserverClient Client2)
 {
     this.OrleansClient  = Client1;
     this.ObserverClient = Client2;
 }
Beispiel #3
0
 public PlayerPocol(IClusterClient Client1, IObserverClient Client2)
 {
     OrleansClient  = Client1;
     ObserverClient = Client2;
 }
 public IceFrontHostedService(IOptions <IceOptions> options, IClusterClient client, IObserverClient client2)
 {
     logger.Info("IceFrontService Init!");
     network.Init(options.Value, client, client2);
 }