RavenxPusher
RavenxPusher is a custom strategy for ravenx so we can send notifications
through pusher in an easy and nice way.
Installation
To install this package, you need to add ravenx_pusher to your list of dependencies in mix.exs:
def deps do
[{:ravenx_pusher, "~> 0.1.3"}]
end
And second you need to add it to the list of Ravenx strategies in the config in order for it to work:
config :ravenx, :strategies, [
pusher: RavenxPusher
]Configuration
** In order to use Pusher you'll need the following items from your apps dashboard so we can configure it properly:
app_id: In Pusherapp_id.app_key: In Pusherkey.secret: In Pushersecret.
Once we have them we can proceed.
As explained in the ravenxconfiguration section, we have different ways of configuring the adapters:
Passing the options in the dispatch call:
iex> Ravenx.dispatch(:pusher, %{event: "my-event", data: "Data to send", channels: "my-channel"}, %{host: "localhost", port: 8080, app_id: "myAppId", app_key: "myAppKey", secret: "myAppSecret"})Specifying a configuration module in your application config:
config :ravenx, config: YourApp.RavenxConfigAnd creating that module:
defmodule YourApp.RavenxConfig do def pusher(_payload) do %{ app_id: "...", app_key: "...", secret: "...", host: "...", port: ... # 8080 for example } end endNote: the module should contain a function called as the strategy yopu are configuring, receiving the payload and returning a configuration Keyword list.
Specifying the configuration directly on your application config file:
config :ravenx, :pusher, app_id: "...", app_key: "...", secret: "...", host: "...", port: ... # 8080 for example
If you want to know more about configuration options or ravenx itself go to their README.
Dispatching
To dispatch any notification through Pusher you need to pass a map (as the second parameter) to Ravenx.dispatch(:pusher, to_dispatch, opts \\ %{}) with the following keys:
- data: The data to send.
- event: The name of the event.
-
channels: The channels where the notification will go through (this can be either a
Stringor aList(String.t)).
License
Check LICENSE.