mirror of
https://github.com/danieleteti/delphimvcframework.git
synced 2024-11-16 16:25:54 +01:00
100 lines
2.9 KiB
ObjectPascal
100 lines
2.9 KiB
ObjectPascal
|
program SimpleMessaging;
|
||
|
{$APPTYPE CONSOLE}
|
||
|
|
||
|
uses
|
||
|
SysUtils, StompClient, StompTypes;
|
||
|
|
||
|
procedure Example_Pub_Subscriber;
|
||
|
var
|
||
|
StompPub, StompSubscriber: IStompClient;
|
||
|
StompFrame: IStompFrame;
|
||
|
begin
|
||
|
WriteLn('==> Example_Pub_Subscriber');
|
||
|
StompSubscriber := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompSubscriber.Subscribe('/topic/dummy');
|
||
|
StompPub := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompPub.Send('/topic/dummy', 'Some test message');
|
||
|
repeat
|
||
|
StompFrame := StompSubscriber.Receive;
|
||
|
until Assigned(StompFrame);
|
||
|
WriteLn(StompFrame.GetBody); // Print "Some test message"
|
||
|
WriteLn;
|
||
|
end;
|
||
|
|
||
|
procedure Example_OnePub_TwoSubscriber;
|
||
|
var
|
||
|
StompPub, StompSub1, StompSub2: IStompClient;
|
||
|
StompFrame: IStompFrame;
|
||
|
begin
|
||
|
WriteLn('==> Example_OnePub_TwoSubscriber');
|
||
|
StompSub1 := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompSub2 := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompSub1.Subscribe('/topic/dummy');
|
||
|
StompSub2.Subscribe('/topic/dummy');
|
||
|
|
||
|
//
|
||
|
StompPub := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompPub.Send('/topic/dummy', 'First test message on a topic');
|
||
|
StompPub.Send('/topic/dummy', 'Second test message on a topic');
|
||
|
|
||
|
StompFrame := StompSub1.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.GetBody);
|
||
|
StompFrame := StompSub1.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.GetBody);
|
||
|
|
||
|
StompFrame := StompSub2.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.GetBody);
|
||
|
StompFrame := StompSub2.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.GetBody);
|
||
|
WriteLn;
|
||
|
end;
|
||
|
|
||
|
procedure Example_PointToPoint;
|
||
|
var
|
||
|
StompPub, StompSub1, StompSub2: IStompClient;
|
||
|
StompFrame: IStompFrame;
|
||
|
begin
|
||
|
WriteLn('==> Example_PointToPoint');
|
||
|
StompSub1 := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompSub2 := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompSub1.Subscribe('/queue/dummy');
|
||
|
StompSub2.Subscribe('/queue/dummy');
|
||
|
|
||
|
//
|
||
|
StompPub := StompUtils.NewStomp('127.0.0.1'); // default port
|
||
|
StompPub.Send('/queue/dummy', 'First test message on a queue');
|
||
|
StompPub.Send('/queue/dummy', 'Second test message on a queue');
|
||
|
|
||
|
StompFrame := StompSub1.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.Output);
|
||
|
StompFrame := StompSub1.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.Output);
|
||
|
|
||
|
StompFrame := StompSub2.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.Output);
|
||
|
StompFrame := StompSub2.Receive(2000);
|
||
|
if Assigned(StompFrame) then
|
||
|
WriteLn(StompFrame.Output);
|
||
|
|
||
|
WriteLn;
|
||
|
end;
|
||
|
|
||
|
|
||
|
begin
|
||
|
try
|
||
|
Example_Pub_Subscriber;
|
||
|
Example_OnePub_TwoSubscriber;
|
||
|
Example_PointToPoint;
|
||
|
except
|
||
|
on E: Exception do
|
||
|
WriteLn(E.ClassName, ': ', E.message);
|
||
|
end;
|
||
|
end.
|