Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Erlang PubNub API
Erlang
Branch: master

fix example

latest commit 73f5a54294
Tristan Sloughter authored
Failed to load latest commit information.
config cleaned up readme, specs, and config to uniformly use binary instead …
src fix example
.buildpacks move gemfiles to buildpack
.gitignore update hackney and jsx and switch to rebar3 by default
README.md fix README example
rebar.config update hackney and jsx and switch to rebar3 by default
rebar.lock
rebar3 update hackney and jsx and switch to rebar3 by default

README.md

README

Author: Tristan Sloughter t@crashfast.com website: http://blog.erlware.org

Version: 0.1.0

Quick Start

  • Build
$ ./rebar3 compile
  • Test
$ ./rebar3 shell
1> application:ensure_all_started(epubnub).
ok
2> epubnub:publish(<<"hello_world">>, <<"hello">>).
{[1,<<"Sent">>,<<"13612809348896246">>]}

Examples

src/epn_example_client has a simple example of a gen_server subscribing to a channel. The init function takes an EPN record, created with epubsub:new() in start_link and requests to subscribe to the "hello_world" channel and sends its PID with the self() function so new messages are sent to this process.

init([EPN]) ->
    {ok, PID} = epubnub_sup:subscribe(EPN, <<"hello_world">>, self()),
    {ok, #state{pid=PID}}.

Since currently the subscribe loop sends the message with the bang (!) the gen_server will handle the new message in handle_info. The example simply prints out the contents of the message:

handle_info({message, Message}, State) ->
    io:format("~p~n", [Message]),
    {noreply, State}.

To unscribe we call the module stop function that sends an async stop message to the process. The handle_cast function handles this message and return stop telling the gen_server to go to terminate. In terminate we take the PID of the subscribed process to the epubnub unsubscribe function which sends it a terminate message and it exits.

stop() ->
    gen_server:cast(?SERVER, stop).

handle_cast(stop, State) ->
    {stop, normal, State}.

terminate(_Reason, #state{pid=PID}) ->
    epubnub:unsubscribe(PID),
    ok.
Something went wrong with that request. Please try again.