示例#1
0
        public bool Connect(string connectionStr)
        {
            p2p = null;
            string[] parts = connectionStr.Split(new string[] { "::" }, StringSplitOptions.None); // Yikes! This is fugly.
            switch (parts[0].ToLower())
            {
            case "p2predis":
                p2p = new P2pRedis(this, parts[1]);
                break;

            case "p2ploopback":
                p2p = new P2pLoopback(this, null);
                break;

            case "p2pactivemq":
                p2p = new P2pActiveMq(this, parts[1]);
                break;

            default:
                throw(new Exception($"Invalid connection type: {parts[0]}"));
            }
            if (p2p == null)
            {
                throw(new Exception("p2p Connect failed"));
            }
            return(p2p != null);
        }
示例#2
0
        protected override IP2pNet P2pNetFactory(string p2pConnectionString)
        {
            // P2pConnectionString is <p2p implmentation name>::<imp-dependent connection string>
            // Names are: p2ploopback, p2predis

            IP2pNet ip2p = null;

            string[] parts = p2pConnectionString.Split(new string[] { "::" }, StringSplitOptions.None); // Yikes! This is fugly.

            switch (parts[0])
            {
            case "p2predis":
                ip2p = new P2pRedis(this, parts[1]);
                break;

            case "p2ploopback":
                ip2p = new P2pLoopback(this, null);
                break;

            // case "p2pactivemq":
            //     p2p = new P2pActiveMq(this, parts[1]);
            //     break;
            default:
                throw(new Exception($"Invalid connection type: {parts[0]}"));
            }

            return(ip2p);
        }
示例#3
0
 public virtual void Disconnect()
 {
     if (p2p?.GetId() != null)
     {
         p2p.Leave();
     }
     p2p = null;
 }
示例#4
0
        // Override this to account for P2pNet implementations you support
        protected virtual IP2pNet P2pNetFactory(string p2pConnectionString)
        {
            // P2pConnectionString is <p2p implmentation name>::<imp-dependent connection string>
            IP2pNet ip2p = null;

            string[] parts = p2pConnectionString.Split(new string[] { "::" }, StringSplitOptions.None); // Yikes! This is fugly.

            switch (parts[0].ToLower())
            {
            case "p2ploopback":
                ip2p = new P2pLoopback(this, null);
                break;

            default:
                throw(new Exception($"Invalid connection type: {parts[0]}"));
            }

            if (ip2p == null)
            {
                throw(new Exception("p2p Connect failed"));
            }

            return(ip2p);
        }
示例#5
0
 //
 // IGameNet
 //
 public virtual void Connect(string p2pConnectionString)
 {
     p2p = P2pNetFactory(p2pConnectionString);
 }