public HResult Close() { HResult hr = HResult.S_OK; _networkSender.Close(); return(hr); }
//退出 public int Quit(string id) { Send(new GameMessage() { stateCode = MsgCode.CLIENT_QUIT }); client.Close(); return(0); }
/// <summary> /// 网络集成测试 /// </summary> public void NetworkIntergrateTest <T, V>(string connectStr) where T : INetworkServer, new() where V : INetworkClient, new() { //开启服务器 INetworkServer server = NetworkFactory.CreateNetworkServer <T>(); server.StartListen(connectStr); //测试用客户端进行连接 INetworkClient client = null; ThreadPool.QueueUserWorkItem((o) => { Thread.Sleep(50); //假设50毫秒服务器可以开起来 client = NetworkFactory.CreateNetworkClient <V>(); client.Connect(connectStr); }); //服务器获得新的session INetworkClientSession session = BlockWaitNewClient(server); Assert.IsNotNull(session); Assert.IsNotNull(client); Assert.IsTrue(client.Connected); //测试客户端往服务器发消息 var testMsg = new GameMessage() { stateCode = 9999 }; client.Send(testMsg); var msg = BlockRead(session); Assert.AreEqual(msg.stateCode, 9999); //测试服务器往客户端发消息 session.Send(new SyncMessage() { stateCode = 9993, timeleft = 3333 }); msg = BlockRead(client); Assert.IsTrue(msg is SyncMessage); Assert.AreEqual(msg.stateCode, 9993); Assert.AreEqual((msg as SyncMessage).timeleft, 3333); //关闭连接 client.Close(); Assert.IsFalse(client.Connected); session.Close(); Assert.IsFalse(session.Connected); //关闭服务器 server.Shutdown(); }
public static void Disconnect() { if (_client == null) { throw new NoConnectionException("No existing connection to close."); } if (Statistics.Log) { Statistics.Disconnects++; } _client.Close(); _client = null; HostAddress = null; #if DEBUG_LOG UnityEngine.Debug.Log("Disconnected from " + HostAddress); #endif }