Skip to content

Commit

Permalink
Merge pull request jeremyong#46 from rroupski/master
Browse files Browse the repository at this point in the history
Add process registration
  • Loading branch information
sanmiguel authored Oct 25, 2016
2 parents e129185 + e76333c commit 77c11f1
Showing 1 changed file with 19 additions and 2 deletions.
21 changes: 19 additions & 2 deletions src/websocket_client.erl
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

-export([start_link/3]).
-export([start_link/4]).
-export([start_link/5]).
-export([cast/2]).
-export([send/2]).

Expand Down Expand Up @@ -120,17 +121,33 @@ start_link(URL, Handler, Args) ->
%% (useful if you need to add an e.g. 'Origin' header on connection.
%% - {ssl_verify, verify_none | verify_peer | {verify_fun, _}} : this is passed
%% through to ssl:connect/2,3.
start_link(URL, Handler, HandlerArgs, Opts) when is_list(Opts) ->
start_link(URL, Handler, HandlerArgs, Opts) ->
start_link(undefined, URL, Handler, HandlerArgs, Opts).

%% @doc Start the websocket client
%% see gen_fsm:start_link(FsmName, Module, Args, Options)
%% FsmName = {local,Name} | {global,GlobalName} | {via,Module,ViaName}
%% Name = atom()
%% GlobalName = ViaName = term()
%% Module = atom()
start_link(FsmName, URL, Handler, HandlerArgs, Opts) when is_binary(URL) ->
start_link(FsmName, binary_to_list(URL), Handler, HandlerArgs, Opts);
start_link(FsmName, URL, Handler, HandlerArgs, Opts) when is_list(Opts) ->
case http_uri:parse(URL, [{scheme_defaults, [{ws,80},{wss,443}]}]) of
{ok, {Protocol, _, Host, Port, Path, Query}} ->
InitArgs = [Protocol, Host, Port, Path ++ Query, Handler, HandlerArgs, Opts],
%FsmOpts = [{dbg, [trace]}],
FsmOpts = [],
gen_fsm:start_link(?MODULE, InitArgs, FsmOpts);
fsm_start_link(FsmName, InitArgs, FsmOpts);
{error, _} = Error ->
Error
end.

fsm_start_link(undefined, Args, Options) ->
gen_fsm:start_link(?MODULE, Args, Options);
fsm_start_link(FsmName, Args, Options) ->
gen_fsm:start_link(FsmName, ?MODULE, Args, Options).

send(Client, Frame) ->
gen_fsm:sync_send_event(Client, {send, Frame}).

Expand Down

0 comments on commit 77c11f1

Please sign in to comment.