NetTestClient.cs 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. using CommonAI.Zone;
  2. using CommonAI.Zone.ZoneEditor;
  3. using CommonAI.ZoneServer;
  4. using CommonAIClient.Client;
  5. using CommonLang.IO;
  6. using CommonLang.Protocol;
  7. using RoomService.Net.BsClient;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. namespace CommonAIServer.Connector.Client
  13. {
  14. public class NetTestClient : IDisposable
  15. {
  16. public BattleClient Client { get { return mClient; } }
  17. public EditorTemplates DataRoot { get { return mDataRoot; } }
  18. private readonly BattleClient mClient;
  19. private readonly EditorTemplates mDataRoot;
  20. public NetTestClient(
  21. string playerUUID,
  22. string roomID,
  23. string netDirver,
  24. string connectString,
  25. int intervalMS,
  26. int syncRange,
  27. CreateUnitInfoR2B unit,
  28. EditorTemplates data_root)
  29. : this(playerUUID, roomID, netDirver, connectString, intervalMS, syncRange, unit, false, null, data_root)
  30. { }
  31. public NetTestClient(
  32. string playerUUID,
  33. string roomID,
  34. string netDirver,
  35. string connectString,
  36. int intervalMS,
  37. int syncRange,
  38. CreateUnitInfoR2B unit,
  39. bool isProxy,
  40. string proxyConnectString,
  41. EditorTemplates data_root)
  42. {
  43. Console.WriteLine(" PlayerUUID = " + playerUUID);
  44. Console.WriteLine(" RoomID = " + roomID);
  45. Console.WriteLine(" NetDirver = " + netDirver);
  46. Console.WriteLine(" ConnectString = " + connectString);
  47. Console.WriteLine(" IntervalMS = " + intervalMS);
  48. Console.WriteLine(" SyncRange = " + syncRange);
  49. Console.WriteLine(" UnitTemplateID = " + unit.UnitTemplateID);
  50. Console.WriteLine(" Force = " + unit.Force);
  51. Console.WriteLine(" IsProxy = " + isProxy);
  52. //UnitInfo temp = TemplateManager.Instance.getUnit(unit.UnitTemplateID);
  53. MessageFactoryGenerator factory = TemplateManager.MessageCodec;
  54. this.mDataRoot = data_root;
  55. if (unit.UnitPropData == null)
  56. {
  57. UnitInfo temp = mDataRoot.Templates.getUnit(unit.UnitTemplateID);
  58. unit.UnitPropData = IOUtil.Clone(factory, temp.Properties);
  59. }
  60. PlayerWillConnectResponseB2R room = new PlayerWillConnectResponseB2R();
  61. room.PlayerUUID = playerUUID;
  62. room.Room = new RoomInfo();
  63. room.Room.ClientConnectString = connectString;
  64. room.Room.NetDriverString = netDirver;
  65. room.Room.Dummy = 0;
  66. room.Room.RoomID = roomID;
  67. PlayerWillConnectRequestR2B enter = new PlayerWillConnectRequestR2B();
  68. {
  69. enter.PlayerUUID = playerUUID;
  70. enter.PlayerDisplayName = playerUUID;
  71. enter.Token = playerUUID;
  72. enter.TokenValidTimeSec = int.MaxValue;
  73. enter.RoomID = roomID;
  74. enter.Data = unit; //IOUtil.ObjectToBin(factory, unit);
  75. }
  76. if (isProxy)
  77. {
  78. this.mClient = new BattleClientProxy(
  79. new TestProxySession(),
  80. proxyConnectString,
  81. mDataRoot, factory, room, enter, playerUUID);
  82. }
  83. else
  84. {
  85. this.mClient = new BattleClientDirect(
  86. mDataRoot, factory, room, enter, playerUUID);
  87. }
  88. }
  89. public void Start()
  90. {
  91. this.mClient.Start();
  92. }
  93. public void Stop()
  94. {
  95. this.mClient.Stop();
  96. }
  97. public void Dispose()
  98. {
  99. this.mClient.Dispose();
  100. }
  101. public void Update(int intervalMS)
  102. {
  103. this.mClient.BeginUpdate(intervalMS);
  104. this.mClient.Update();
  105. }
  106. //--------------------------------------------------------------------------------------------
  107. class TestProxySession : BattleClientProxy.ProxyNetSession
  108. {
  109. public override bool IsMessageTypeGS(object msg)
  110. {
  111. return false;
  112. }
  113. }
  114. }
  115. }