Maxim Sokhatsky 11 лет назад
Родитель
Сommit
db3e12733c
2 измененных файлов с 28 добавлено и 19 удалено
  1. 1 1
      apps/face/src/index.erl
  2. 27 18
      apps/face/src/n2o_game.erl

+ 1 - 1
apps/face/src/index.erl

@@ -161,4 +161,4 @@ event({server,{game_event, _, okey_next_turn, Args}}) ->
     end,
     wf:wire("document.querySelector('#" ++ erlang:atom_to_list(LabelId) ++ "').style.color = \"red\";"),
     put(okey_turn_mark, LabelId);
-event(Event)  -> wf:info("Event: ~p", [Event]).
+event(Event)  -> ok. % wf:info("Event: ~p", [Event]).

+ 27 - 18
apps/face/src/n2o_game.erl

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