A Pusher.com server client in Haskell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
assets
src/Network
test
.gitignore
LICENSE
README.md
Setup.hs
pusher-haskell.cabal
stack.yaml

README.md

#HaskellPusher A Pusher server client written in Haskell.

Currently, the package allows:

  • Triggering events on single or multiple channels
  • Fetching basic information about single or multiple channels

Up next:

  • Fetching a list of channels with active subscriptions
  • Fetching a list of users present for a particular channel

Usage

If you go to https://app.pusher.com/apps/YOUR_APP_ID/api_access and run the following code after filling in your app-id, app-key, and app-secret, you should see an alert popup on screen.

> import Network.Pusher

> let pusher = Pusher "app-id" "app-key" "app-secret"
> let channel = "test_channel"
> let event = Event "my_event" "{\"message\":\"hello world\"}"

> triggerEvent (pusher, channel, event)
"{}"

> getChannelInfo (pusher, channel, [])
Right (ChannelInfo {occupied = True, userCount = Nothing, subscriptionCount = Nothing})

You can also trigger events across multiple channels:

> ...
> let channels = ["first_channel", "second_channel"]
> ...

> triggerMultiChannelEvent (pusher, channels, event)
"{}"

And fetch information about all channels:

> ...

> getMultiChannelInfo (pusher, [], Nothing)
Right (ChannelList [Channel {name = "test_channel", cUserCount = Nothing}])

Documentation

Documentation for the individual modules is available on hackage.

License

pusher-haskell is Copyright (c) 2015 Sid Raval. It is free software, and may be redistributed under the terms specified in the LICENSE file.