anchor.diff:  respond(<<"abort">>, JobId, State) ->
       send_response(<<"aborted">>, JobId, State).
   
  +
  +connect_to_command(Ctx, Address) ->
  +    lager:info("Client : Connecting to command channel at ~s.", [Address]),
  +    {ok, Sock} = erlzmq:socket(Ctx, [dealer, {active, true}]),
  +    erlzmq:setsockopt(Sock, linger, 0),
  +    erlzmq:connect(Sock, Address),
  +    {ok, Sock}.
  +
  +connect_to_heartbeat(Ctx, Address) ->
  +    lager:info("Client : Connecting to server heartbeat channel at ~s.", [Address]),
  +    {ok, Sock} = erlzmq:socket(Ctx, [sub, {active, true}]),
  +    erlzmq:connect(Sock, Address),
  +    erlzmq:setsockopt(Sock, subscribe, ""),
  +    {ok, Sock}.
  +
  
positive.code:             State
      end.
  
  respond(<<"commit">>, JobId, State) ->
      send_response(<<"ack_commit">>, JobId, State);
  respond(<<"run">>, JobId, State) ->
  
negative.code: 
      lager:info("Getting config from Pushy Server ~s:~w", [Hostname, Port]),
      Config = pushy_client_config:get_config(?PUSHY_ORGNAME, Hostname, Port),
      Interval =  pushy_util:get_env(pushysim, heartbeat_interval, fun is_integer/1),
  
      NodeId = list_to_binary(io_lib:format("~s-~4..0B", [ClientName, InstanceId])),
      lager:info("Starting pushy client with node id ~s (~s).", [NodeId, IncarnationId]),
  
  
      HeartbeatAddress = proplists:get_value(heartbeat_address, Config),
      {ok, HeartbeatSock} = connect_to_heartbeat(Ctx, HeartbeatAddress),
      CommandAddress = proplists:get_value(command_address, Config),
      {ok, CommandSock} = connect_to_command(Ctx, CommandAddress),
  
      {ok, PrivateKey} = chef_keyring:get_key(client_private),
      {ok, PublicKey} = server_public_key(Config),
  
      State = #state{command_sock = CommandSock,
                     heartbeat_sock = HeartbeatSock,
                     client_name = ClientName,
                     heartbeat_interval = Interval,
                     sequence = 0,
  