delphimvcframework/examples/SimpleMessaging/SimpleMessaging.dpr
daniele.teti 3323258903 + Some fix to TStompClient
+ Added SimpleMessaging Example
2010-04-18 18:49:47 +00:00

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.