azure-servicebus-0.1.6.0: examples/TopicExample.hs
module Main where
import Network.MicrosoftAzure.ServiceBus.Topic
import Network.MicrosoftAzure.ServiceBus
import qualified Data.ByteString.Char8 as C
import Network(withSocketsDo)
topic = "TopicName"
subs = "subsName"
sbNamespace = "SBNAMESPACE"
sbIssuerKey = C.pack "someSubscriptionKey="
sbIssuerName = C.pack "owner"
sbinfo = SBInfo sbNamespace sbIssuerName sbIssuerKey
message1 = C.pack "Hello from Haskell"
message2 = C.pack "Haskell Rocks"
main = do
sbContext <- sbContext sbinfo
sendTopicBS topic message1 sbContext
-- Enqueued message 1 to queue
res <- destructiveRead topic subs 30 sbContext
-- Dequeued it
print res
-- Enqueue it again
sendTopicBS topic message1 sbContext
-- EnQueue Another Message
sendTopicBS topic message2 sbContext
-- Peek Lock on the first message
(lockInfo,msgFromQueue) <- peekLockTopic topic subs 50 sbContext
-- Now a destructiveRead would result in us getting the second message (while the first is still in the topic)
res3 <- destructiveRead topic subs 10 sbContext
print res3
-- renew lock
renewLock lockInfo sbContext
-- delete the message
deleteMessage lockInfo sbContext