anchor.diff:  -include("emqttd_protocol.hrl").
   
   %% API Exports
  --export([start_link/1, ws_loop/3]).
  +-export([start_link/1, ws_loop/3, subscribe/2]).
   
   -behaviour(gen_server).
   
  
positive.code:                              client_pid   = ClientPid,
                               packet_opts  = PktOpts,
                               parser       = emqttd_parser:new(PktOpts)}).
  
  %%------------------------------------------------------------------------------
  %% @private
  
negative.code: 
  handle_info({redeliver, {?PUBREL, PacketId}}, State = #client_state{proto_state = ProtoState}) ->
      {ok, ProtoState1} = emqttd_protocol:redeliver({?PUBREL, PacketId}, ProtoState),
      {noreply, State#client_state{proto_state = ProtoState1}};
  
  handle_info({stop, duplicate_id, _NewPid}, State = #client_state{proto_state = ProtoState}) ->
  