Browse Source

unlink ws and game process

Maxim Sokhatsky 11 years ago
parent
commit
4434faa0d8
3 changed files with 11 additions and 7 deletions
  1. 6 4
      apps/server/src/game_session.erl
  2. 1 0
      apps/web/src/logallow.erl
  3. 4 3
      apps/web/src/okey.erl

+ 6 - 4
apps/server/src/game_session.erl

@@ -17,13 +17,15 @@
         role = viewer :: atom() %% [viewer, player, ghost]
        }).
 
+start(RPC) when is_pid(RPC) -> gen_server:start(?MODULE, [RPC], []).
 start_link(RPC) when is_pid(RPC) -> gen_server:start_link(?MODULE, [RPC], []).
 bot_session_attach(Pid, UserInfo) -> gen_server:cast(Pid, {bot_session_attach, UserInfo}).
 process_request(Pid, Msg) -> gen_server:call(Pid, {client_request, Msg}).
 process_request(Pid, Source, Msg) -> gen_server:call(Pid, {client_request, Msg}).
 send_message_to_player(Pid, Message) -> Pid ! {server,Message}, ok.
 
-init([RPC]) -> MonRef = erlang:monitor(process, RPC), {ok, #state{rpc = RPC, rpc_mon = MonRef}}.
+init([RPC]) -> MonRef = 0, %erlang:monitor(process, RPC), 
+   {ok, #state{rpc = RPC, rpc_mon = MonRef}}.
 handle_call({client_request, Request}, From, State) -> handle_client_request(Request, From, State);
 handle_call(Request, From, State) ->
     gas:info(?MODULE,"Unrecognized call: ~p from ~p", [Request,From]),
@@ -58,11 +60,11 @@ handle_info({'DOWN', OtherRef, process, _Object, Info} = _Msg, #state{games = Ga
             {stop, table_down, State};
         _ -> {noreply, State} end;
 
-handle_info(Info, State) ->
+handle_info(Info, State=#state{rpc=RPC}) ->
     gas:info(?MODULE,"Unrecognized info: ~p", [Info]),
     {noreply, State}.
 
-terminate(Reason, #state{}) ->
+terminate(Reason, #state{rpc=RPC}) ->
     gas:info(?MODULE,"Terminating session: ~p", [Reason]),
     ok.
 
@@ -209,7 +211,7 @@ handle_client_request(#pause_game{game = GameId, action = Action}, _From, State)
             {reply, Res, State}
     end;
 
-handle_client_request(Request, _From, State) ->
+handle_client_request(Request, _From, State=#state{rpc=RPC}) ->
     gas:info(?MODULE,"unrecognized client request: ~p", [Request]),
     {stop, {unknown_client_request, Request}, State}.
 

+ 1 - 0
apps/web/src/logallow.erl

@@ -5,6 +5,7 @@ log_modules() -> [
     wf_core,
 %    n2o_bullet,
     game_session,
+    bullet_handler,
     n2o_secret,
     js_session,
     okey

+ 4 - 3
apps/web/src/okey.erl

@@ -139,7 +139,7 @@ already_online(Pid) -> [ Pid ! {user_online,User} || {_,_,{_,User}} <- game:onli
 event(terminate) -> 
     User = user(),
     wf:send(broadcast,{user_offline,User}),
-    wf:info(?MODULE,"terminate");
+    wf:info(?MODULE,"EXTerminate",[]);
 
 event(init) -> 
     js_session:ensure_sid([],?CTX),
@@ -174,7 +174,7 @@ event(player_info) ->
     wf:wire(Wire);
 
 event(attach) -> 
-    {ok,GamePid} = game_session:start_link(self()),
+    {ok,GamePid} = game_session:start(self()),
     wf:session(<<"game_pid">>,GamePid),
     User = user(),
     wf:info(?MODULE,"User Attach: ~p",[User]),
@@ -413,11 +413,12 @@ event({server,{game_event, _, okey_next_turn, Args}}) ->
     select(LabelId),
     put(okey_turn_mark, LabelId);
 
+event({server,terminate}) -> event(terminate);
 event({register,User}) -> wf:info(?MODULE,"Register: ~p",[User]), kvs:add(User), wf:user(User);
 event({login,User}) -> wf:info(?MODULE,"Login: ~p",[User]), kvs:put(User), wf:user(User), event(init);
 event({counter,Res}) -> self() ! {server,{online_number,Res}};
 event({user_online,User}) -> wf:info(?MODULE,"User ~p goes Online",[User#user.id]), self() ! {server,{online,User#user.id,User#user.names,User#user.surnames}};
 event({user_offline,User}) -> self() ! {server,{offline,User#user.id,User#user.names,User#user.surnames}};
-event(_Event) -> ok. % wf:info(?MODULE,"Event: ~p", [_Event]).
+event(_Event) -> wf:info(?MODULE,"Unknown Event: ~p", [_Event]).
 
 api_event(X,Y,Z) -> avz:api_event(X,Y,Z).