packages feed

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