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); }
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); }
public virtual void Disconnect() { if (p2p?.GetId() != null) { p2p.Leave(); } p2p = null; }
// 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); }
// // IGameNet // public virtual void Connect(string p2pConnectionString) { p2p = P2pNetFactory(p2pConnectionString); }