channeldemo.lpr 882 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. library channeldemo;
  2. uses sysutils, wasm.messagechannel.objects;
  3. Type
  4. { TApp }
  5. TApp = Class(TObject)
  6. FChannel : TWasmMessageChannel;
  7. FCounter : Integer;
  8. procedure HandleMessage(Sender: TObject; const aMessage: string);
  9. procedure SendMessage;
  10. constructor create;
  11. end;
  12. var
  13. App : TApp;
  14. procedure SendMessage;
  15. begin
  16. App.SendMessage;
  17. end;
  18. exports SendMessage;
  19. { TApp }
  20. procedure TApp.HandleMessage(Sender: TObject; const aMessage: string);
  21. begin
  22. Writeln('WASM received on "some_channel" a message: ',aMessage);
  23. end;
  24. procedure TApp.SendMessage;
  25. var
  26. S : string;
  27. begin
  28. inc(FCounter);
  29. S:=Format('This is message #%d.',[FCounter]);
  30. FChannel.SendMessage(S,False);
  31. end;
  32. constructor TApp.create;
  33. begin
  34. FChannel:=TWasmBroadcastMessageChannel.Create('some_channel');
  35. FChannel.OnMessage:=@HandleMessage;
  36. end;
  37. begin
  38. App:=TApp.Create;
  39. end.