/// <summary> /// /// </summary> /// <param name="ip"></param> /// <param name="port"></param> public void Connect(string ip, int port) { MPNetClient mpnet = new MPNetClient(m_PrefabConnecterId); mpnet.Connect(ip, port); mpnet.AddEventListener(MPEvent.CONNECTION, delegate(BaseEvent evt) { IMPObject par = evt.Params; if ((bool)par["success"]) { IMPObject mpo = MPObject.NewInstance(); mpo["test1"] = 22; mpo["test2"] = 22; mpo["test3"] = 33; LuaTable table = mpo.ToLuaTable(); GTLib.NetManager.DispatchLuaEvent("conn1", table); } else { GTLib.NetManager.DispatchLuaEvent("lost1", null); } }); mpnet.AddEventListener(MPEvent.CONNECTION_LOST, delegate(BaseEvent evt) { GTLib.NetManager.KillConnection(m_PrefabConnecterId); GTLib.NetManager.DispatchLuaEvent("lost1", null); }); GTLib.NetManager.AddMPNetClient(mpnet); }
/// <summary> /// /// </summary> /// <param name="mpnet"></param> /// <param name="cmd"></param> /// <param name="parameters"></param> internal void HandleExtension(MPNetClient mpnet, string cmd, IMPObject parameters) { if (extensionMessages.ContainsKey(mpnet.Id)) { Hashtable messages = extensionMessages[mpnet.Id]; ExtensionMessageDelegate delegate2 = messages[cmd] as ExtensionMessageDelegate; if (delegate2 != null) { try { delegate2(parameters); } catch (Exception exception) { throw new Exception(string.Concat("Error extension handler [", cmd, "]: ", exception.Message, " ", exception.StackTrace), exception); } } } if (luaExtensionMessages.ContainsKey(mpnet.Id)) { Hashtable messages = luaExtensionMessages[mpnet.Id]; LuaFunction delegate2 = messages[cmd] as LuaFunction; if (delegate2 != null) { delegate2.Call(parameters.ToLuaTable()); } } }