anchor.diff:  
       {ok, Ret};
   
  -decode_payload('SUBSCRIBE', _Qos, {_Len, <<MsgID:16, Payload/binary>>}) ->
  +decode_payload('SUBSCRIBE', _, {_Len, <<MsgID:16, Payload/binary>>}) ->
       lager:debug("SUBSCRIBE v3.1 ~p", [MsgID]),
       case MsgID of
           0 -> erlang:throw({'SUBSCRIBE', "2.3.1-1", "null msgid"});
  
positive.code:     lager:debug("SUBACK. MsgID= ~p", [MsgID]),
      {ok, [{msgid, MsgID}]};
  
  decode_payload(Cmd, Qos, Args) ->
      lager:info("invalid command ~p (qos=~p, payload=~p)", [Cmd, Qos, Args]),
  
      {error, disconnect}.
  
  
negative.code: 	lager:debug("topics= ~p", [Topics]),
  	{ok, [{msgid, MsgID},{topics, Topics}]};
  
  decode_payload('UNSUBSCRIBE', _, {_Len, <<MsgID:16, Payload/binary>>}) ->
      lager:debug("UNSUBSCRIBE: ~p", [Payload]),
      case MsgID of
          0 -> erlang:throw({'UNSUBSCRIBE', "2.3.1-1", "null msgid"});
  