GroupTestCase.pas 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. unit GroupTestCase;
  2. interface
  3. uses
  4. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5. Dialogs, StdCtrls, ComCtrls, IdHTTP,WebSocket2,WebSocketClient,synautil,
  6. Buttons, Sockets;
  7. type
  8. TProtocolMethod = procedure(Data: String) of Object;
  9. TForm3 = class(TForm)
  10. pgc1: TPageControl;
  11. ts1: TTabSheet;
  12. btn1: TButton;
  13. mmo1: TMemo;
  14. btn6: TBitBtn;
  15. btn2: TBitBtn;
  16. udpsckt1: TUdpSocket;
  17. procedure btn1Click(Sender: TObject);
  18. procedure btn6Click(Sender: TObject);
  19. procedure btn7Click(Sender: TObject);
  20. procedure FormCreate(Sender: TObject);
  21. procedure btn2Click(Sender: TObject);
  22. private
  23. FClient: TWebSocketClientConnection;
  24. FLoginNames: TStrings;
  25. FGroupClients: TList;
  26. public
  27. { Public declarations }
  28. end;
  29. var
  30. Form3: TForm3;
  31. implementation
  32. uses
  33. //LoggerImport
  34. DateUtils ,superobject, GroupClient, GroupUtility;
  35. const
  36. SUBSCRIBE_PROTOCOL: string = '5:::{"name":"group.subscribe","args":{"id":"%s"}}';
  37. {$R *.dfm}
  38. const
  39. CONNECT: Byte = 0;
  40. DISCONNECT: Byte = 1;
  41. EVENT: Byte = 2;
  42. ACK: Byte = 3;
  43. ERROR: Byte = 4;
  44. BINARY_EVENT: Byte = 5;
  45. BINARY_ACK: Byte = 6;
  46. MAX_PROTOCOL_NUM: Byte = 6;
  47. MIN_PROTOCOL_NUM: Byte = 0;
  48. type
  49. TLoginTestCase = class(TThread)
  50. public
  51. procedure Execute; override;
  52. end;
  53. { TForm3 }
  54. procedure TForm3.btn1Click(Sender: TObject);
  55. var
  56. ALoginTestCase: TLoginTestCase;
  57. begin
  58. ALoginTestCase := TLoginTestCase.Create(False);
  59. end;
  60. procedure TForm3.btn2Click(Sender: TObject);
  61. var
  62. AMemebers: TStringList;
  63. begin
  64. AMemebers := TStringList.Create;
  65. AMemebers.Add('Member01');
  66. TGroupClient(FGroupClients[0]).CreateTeam('test', '12', '2323', AMemebers, False);
  67. FreeAndNil(AMemebers);
  68. end;
  69. procedure TForm3.btn6Click(Sender: TObject);
  70. var
  71. iLoop: Integer;
  72. AGroupClient: TGroupClient;
  73. begin
  74. AGroupClient := TGroupClient.Create;
  75. AGroupClient.Connect(FLoginNames[0]);
  76. FGroupClients.Add(AGroupClient);
  77. end;
  78. procedure TForm3.btn7Click(Sender: TObject);
  79. var
  80. AMemebers: TStringList;
  81. begin
  82. AMemebers := TStringList.Create;
  83. AMemebers.Add('Test1');
  84. TGroupClient(FGroupClients[0]).CreateTeam('test', '12', '2323', AMemebers, False);
  85. FreeAndNil(AMemebers);
  86. end;
  87. procedure TForm3.FormCreate(Sender: TObject);
  88. var
  89. iLoop: Integer;
  90. begin
  91. FLoginNames := TStringList.Create;
  92. FGroupClients := TList.Create;
  93. for iLoop := 0 to 10000 - 1 do
  94. begin
  95. FLoginNames.Add('User' + IntToStr(iLoop));
  96. end;
  97. end;
  98. { TLoginTestCase }
  99. procedure TLoginTestCase.Execute;
  100. var
  101. iLoop: Integer;
  102. AGroupClient: TGroupClient;
  103. begin
  104. for iLoop := 0 to 1000 - 1 do
  105. begin
  106. AGroupClient := TGroupClient.Create;
  107. AGroupClient.Connect(Form3.FLoginNames[iLoop]);
  108. Form3.FGroupClients.Add(AGroupClient);
  109. end;
  110. end;
  111. end.