anchor.diff:  
   send(Pid, Socket, Type, Channel, Json) when Socket == udp; Socket == ssl; Socket == tcp ->
   	gen_server:cast(Pid, {send, Socket, Type, Channel, Json}).
  +
  +-spec(respond/4 :: (Pid :: pid(), Socket :: 'udp' | 'ssl' | 'tcp', #envelope{}, Json :: json()) -> 'ok').
  +respond(Pid, Socket, #envelope{type = request} = Message, Json) when Socket == udp; Socket == ssl; Socket == tcp ->
  +	#envelope{channel = Channel, id = MsgID} = Message,
  +	gen_server:cast(Pid, {send, Socket, {response, MsgID}, Channel, Json}).
   
   %% ------------------------------------------------------------------
   %% gen_server Function Definitions
  
positive.code: %% API Function Exports
  %% ------------------------------------------------------------------
  
  -export([start_link/2,start/2,udp/2,set_tcp/5,send/5,json_to_envelope/1]).
  
  %% ------------------------------------------------------------------
  %% gen_server Function Exports
  
negative.code: 			{What,Why}
  	end.
  
  confirm_connect_message(#envelope{type = request, channel = <<"control">>} = Message, State) ->
  	#state{ssl_socket = SSLSocket, tcp_socket = TCPSocket, udp_socket = UDPSocket, client_info = ClientInfo} = State,
  	% Send response over SSL transport
  	ConnectRep = {struct, [
  		{confirm, true}
  	]},
  	OutBin = build_message({response, Message#envelope.id}, <<"control">>, ConnectRep),
  	SendRes = ssl:send(SSLSocket, OutBin),
  	?debug("Connect response ssl:send result:  ~p", [SendRes]),
  	?info("TCPSocket, UDPSocket: ~p, ~p", [TCPSocket, UDPSocket]),
  