How to Receive a Message from an Apache ActiveMQ Topic with Squeak

W/o Durability

stream := SocketStream on: (Socket newTCP connectTo: (NetNameResolver addressForName: 'localhost') port: 61613).

stream nextPutAll: 'CONNECT', Character lf asString, Character lf asString, Character null asString.

stream flush.

line := stream nextLineLf.

[line ~= Character null asString] whileTrue: [line := stream nextLineLf]. "Skip the CONNECTED frame"

stream nextPutAll: 'SUBSCRIBE', Character lf asString, 'destination:/topic/SampleTopic', Character lf asString, 'ack:auto', Character lf asString, Character lf asString, Character null asString.

stream flush.

line := stream nextLineLf.

[line ~= ''] whileTrue: [line := stream nextLineLf]. "Seek to the body of the MESSAGE frame"

Transcript show: stream nextLineLf, Character lf asString.

stream nextPutAll: 'DISCONNECT', Character lf asString, Character lf asString, Character null asString.

stream close.

W/ Durability

stream := SocketStream on: (Socket newTCP connectTo: (NetNameResolver addressForName: 'localhost') port: 61613).

stream nextPutAll: 'CONNECT', Character lf asString, 'client-id:SampleClient', Character lf asString, Character lf asString, Character null asString.

stream flush.

line := stream nextLineLf.

[line ~= Character null asString] whileTrue: [line := stream nextLineLf]. "Skip the CONNECTED frame"

stream nextPutAll: 'SUBSCRIBE', Character lf asString, 'destination:/topic/SampleTopic', Character lf asString, 'ack:auto', Character lf asString, 'activemq.subscriptionName:SampleSubscription', Character lf asString, Character lf asString, Character null asString.

stream flush.

line := stream nextLineLf.

[line ~= ''] whileTrue: [line := stream nextLineLf]. "Seek to the body of the MESSAGE frame"

Transcript show: stream nextLineLf, Character lf asString.

stream nextPutAll: 'DISCONNECT', Character lf asString, Character lf asString, Character null asString.

stream close.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.