|
@@ -28,7 +28,7 @@ html_events(Pro, State) ->
|
|
Pickled = proplists:get_value(pickle,Pro),
|
|
Pickled = proplists:get_value(pickle,Pro),
|
|
Linked = proplists:get_value(linked,Pro),
|
|
Linked = proplists:get_value(linked,Pro),
|
|
Depickled = wf:depickle(Pickled),
|
|
Depickled = wf:depickle(Pickled),
|
|
- %wf:info("Depickled: ~p",[Depickled]),
|
|
|
|
|
|
+ wf:info("Depickled: ~p",[Depickled]),
|
|
case Depickled of
|
|
case Depickled of
|
|
#ev{module=Module,name=Function,payload=Parameter,trigger=Trigger} ->
|
|
#ev{module=Module,name=Function,payload=Parameter,trigger=Trigger} ->
|
|
case Function of
|
|
case Function of
|
|
@@ -46,6 +46,7 @@ html_events(Pro, State) ->
|
|
RenderGenActions = wf:render(GenActions),
|
|
RenderGenActions = wf:render(GenActions),
|
|
wf_context:clear_actions(),
|
|
wf_context:clear_actions(),
|
|
JS = iolist_to_binary([Render,RenderGenActions]),
|
|
JS = iolist_to_binary([Render,RenderGenActions]),
|
|
|
|
+ wf:info("JS: ~p",[JS]),
|
|
wf:json([{eval,JS}]).
|
|
wf:json([{eval,JS}]).
|
|
|
|
|
|
stream(<<"ping">>, Req, State) ->
|
|
stream(<<"ping">>, Req, State) ->
|
|
@@ -53,17 +54,29 @@ stream(<<"ping">>, Req, State) ->
|
|
{reply, <<"pong">>, Req, State};
|
|
{reply, <<"pong">>, Req, State};
|
|
stream({text,Data}, Req, State) ->
|
|
stream({text,Data}, Req, State) ->
|
|
wf:info("Text Received ~p",[Data]),
|
|
wf:info("Text Received ~p",[Data]),
|
|
- self() ! Data,
|
|
|
|
- {ok, Req,State};
|
|
|
|
|
|
+% self() ! Data,
|
|
|
|
+ info(Data,Req,State);
|
|
|
|
+% {ok, Req,State};
|
|
stream({binary,Info}, Req, State) ->
|
|
stream({binary,Info}, Req, State) ->
|
|
Pro = binary_to_term(Info,[safe]),
|
|
Pro = binary_to_term(Info,[safe]),
|
|
case Pro of
|
|
case Pro of
|
|
{client,M} -> info({client,M},Req,State);
|
|
{client,M} -> info({client,M},Req,State);
|
|
_ -> {reply,html_events(Pro,State),Req,State} end;
|
|
_ -> {reply,html_events(Pro,State),Req,State} end;
|
|
|
|
+
|
|
|
|
+stream(<<"N2O",Rest/binary>> = Data, Req, State) ->
|
|
|
|
+% self() ! Data,
|
|
|
|
+ info(Data,Req,State);
|
|
|
|
+
|
|
stream(Data, Req, State) ->
|
|
stream(Data, Req, State) ->
|
|
wf:info("Data Received ~p",[Data]),
|
|
wf:info("Data Received ~p",[Data]),
|
|
- self() ! Data,
|
|
|
|
- {ok, Req,State}.
|
|
|
|
|
|
+% Pro = binary_to_term(Data,[safe]),
|
|
|
|
+% case Pro of
|
|
|
|
+% {client,M} -> info({client,M},Req,State);
|
|
|
|
+% _ -> {reply,html_events(Pro,State),Req,State} end.
|
|
|
|
+
|
|
|
|
+ info(binary_to_term(Data),Req,State).
|
|
|
|
+% self() ! binary_to_term(Data),
|
|
|
|
+% {ok, Req,State}.
|
|
|
|
|
|
render_actions(InitActions) ->
|
|
render_actions(InitActions) ->
|
|
RenderInit = wf:render(InitActions),
|
|
RenderInit = wf:render(InitActions),
|
|
@@ -73,15 +86,11 @@ render_actions(InitActions) ->
|
|
[RenderInit,RenderInitGenActions].
|
|
[RenderInit,RenderInitGenActions].
|
|
|
|
|
|
info({client,Message}, Req, State) ->
|
|
info({client,Message}, Req, State) ->
|
|
|
|
+ wf:info("CLIENT ~p",[Message]),
|
|
GamePid = get(game_session),
|
|
GamePid = get(game_session),
|
|
game_session:process_request(GamePid, Message),
|
|
game_session:process_request(GamePid, Message),
|
|
Module = State#context.module,
|
|
Module = State#context.module,
|
|
- case (catch Module:event({client,Message})) of
|
|
|
|
- {'EXIT', Error} ->
|
|
|
|
- wf:info("client event died with ~p", [Error]);
|
|
|
|
- _Ok ->
|
|
|
|
- _Ok
|
|
|
|
- end,
|
|
|
|
|
|
+ try Module:event({client,Message}) catch E:R -> wf:info("Catch: ~p:~p", [E,R]) end,
|
|
Actions = get(actions),
|
|
Actions = get(actions),
|
|
wf_context:clear_actions(),
|
|
wf_context:clear_actions(),
|
|
Render = wf:render(Actions),
|
|
Render = wf:render(Actions),
|
|
@@ -92,13 +101,9 @@ info({client,Message}, Req, State) ->
|
|
{data,binary_to_list(term_to_binary(Message))}]),Req,State};
|
|
{data,binary_to_list(term_to_binary(Message))}]),Req,State};
|
|
|
|
|
|
info({send_message,Message}, Req, State) ->
|
|
info({send_message,Message}, Req, State) ->
|
|
|
|
+ wf:info("SERVER ~p",[Message]),
|
|
Module = State#context.module,
|
|
Module = State#context.module,
|
|
- case (catch Module:event({server,Message})) of
|
|
|
|
- {'EXIT', Error} ->
|
|
|
|
- wf:info("server event died with ~p", [Error]);
|
|
|
|
- _Ok ->
|
|
|
|
- _Ok
|
|
|
|
- end,
|
|
|
|
|
|
+ try Module:event({server,Message}) catch E:R -> wf:info("Catch: ~p:~p", [E,R]) end,
|
|
Actions = get(actions),
|
|
Actions = get(actions),
|
|
wf_context:clear_actions(),
|
|
wf_context:clear_actions(),
|
|
Render = wf:render(Actions),
|
|
Render = wf:render(Actions),
|
|
@@ -108,6 +113,10 @@ info({send_message,Message}, Req, State) ->
|
|
{reply,wf:json([{eval,iolist_to_binary([Render,RenderGenActions])},
|
|
{reply,wf:json([{eval,iolist_to_binary([Render,RenderGenActions])},
|
|
{data,binary_to_list(term_to_binary(Message))}]),Req,State};
|
|
{data,binary_to_list(term_to_binary(Message))}]),Req,State};
|
|
|
|
|
|
|
|
+
|
|
|
|
+info(Pro, Req, State) when is_list(Pro) ->
|
|
|
|
+ {reply,html_events(Pro,State),Req,State};
|
|
|
|
+
|
|
info(Pro, Req, State) ->
|
|
info(Pro, Req, State) ->
|
|
Render =
|
|
Render =
|
|
case Pro of
|
|
case Pro of
|
|
@@ -140,7 +149,7 @@ info(Pro, Req, State) ->
|
|
end;
|
|
end;
|
|
<<"PING">> -> [];
|
|
<<"PING">> -> [];
|
|
Unknown ->
|
|
Unknown ->
|
|
- wf:info("Unknown WS Info Message ~p", [Unknown]),
|
|
|
|
|
|
+% wf:info("Unknown WS Info Message ~p", [Unknown]),
|
|
M = State#context.module,
|
|
M = State#context.module,
|
|
catch M:event(Unknown),
|
|
catch M:event(Unknown),
|
|
Actions = get(actions),
|
|
Actions = get(actions),
|