Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2020
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. unit Server;
  2.  
  3. interface
  4.  
  5. uses
  6. Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7. Dialogs, mORMot, mORMotHttpServer, SynCommons;
  8.  
  9. type
  10. TForm2 = class(TForm)
  11. procedure FormCreate(Sender: TObject);
  12. procedure FormDestroy(Sender: TObject);
  13. private
  14. FRestServer: TSQLRestServerFullMemory;
  15. FHTTPServer: TSQLHttpServer;
  16. public
  17. { Public declarations }
  18. end;
  19.  
  20. IWSSGeneral = interface(IServiceWithCallbackReleased)
  21. ['{EEEFEFC2-4E34-4FD8-9B15-F5BEEBE5C44C}']
  22. function ACall: string;
  23. end;
  24.  
  25. TWebSocketWorker = class(TInterfacedObject, IWSSGeneral)
  26. public
  27. function ACall: string;
  28. procedure CallbackReleased(const callback: IInvokable; const interfaceName: RawUTF8);
  29. end;
  30.  
  31.  
  32. const
  33. WEBSOCKET_ENCRYPTION_KEY = '-JaNdRgUkXp2s5v8x/A?D(G+KbPeShVmYq3t6w9z$B&E)H@McQfTjWnZr4u7x!A%D*F-JaNdRgUkXp2s5v8y/B?E(H+KbPeShVmYq3t6w9z$C&F)J@NcQfTjWnZr4u7x!A%D*G-KaPdSgUkXp2s5v8y/B?E(H+MbQeThWmYq3t6w9z$C&F)J@NcRfUjXn2r4u7x!A%D*G-KaPdSgVkYp3s6v8y/B?E(H+MbQeThWmZq4t7' +
  34. 'w!z$C&F)J@NcRfUjXn2r5u8x/A?D*G-KaPdSgVkYp3s6v9y$B&E)H+MbQeThWmZq4t7w!z%C*F-JaNcRfUjXn2r5u8x/A?D(G+KbPeSgVkYp3s6v9y$B&E)H@McQfTjWmZq4t7w!z%C*F-JaNdRgUkXp2r5u8x/A?D(G+KbPeShVmYq3t6v9y$B&E)H@McQfTjWnZr4u7x!z%C*F-JaNdRgUkXp2s5v8y/B?D(G+KbPeShV' +
  35. 'mYq3t6w9z$C&F)H@McQfTjWnZr4u7x!A%D*';
  36.  
  37. var
  38. Form2: TForm2;
  39.  
  40. implementation
  41.  
  42. {$R *.dfm}
  43.  
  44. procedure TForm2.FormCreate(Sender: TObject);
  45. begin
  46. FRestServer := TSQLRestServerFullMemory.CreateWithOwnModel([]);
  47. FRestServer.CreateMissingTables;
  48. FRestServer.ServiceDefine(TWebSocketWorker,[IWSSGeneral], sicShared);
  49. FHTTPServer := TSQLHttpServer.Create('50010', [FRestServer], AnsiString('+'), useBidirSocket, 32, secSynShaAes);
  50. FHTTPServer.WebSocketsEnable(FRestServer, WEBSOCKET_ENCRYPTION_KEY);
  51. end;
  52.  
  53. procedure TForm2.FormDestroy(Sender: TObject);
  54. begin
  55. FHTTPServer.Free;
  56. FRestServer.Free;
  57. end;
  58.  
  59. { TWebSocketWorker }
  60.  
  61. function TWebSocketWorker.ACall: string;
  62. begin
  63. result := '';
  64. end;
  65.  
  66. procedure TWebSocketWorker.CallbackReleased(const callback: IInvokable; const interfaceName: RawUTF8);
  67. begin
  68. //
  69. end;
  70.  
  71. initialization
  72. TInterfaceFactory.RegisterInterfaces([TypeInfo(IWSSGeneral)]);
  73.  
  74. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement