code: def send_response(self, transaction):
          
          host, port = transaction.request.source
          key_token = hash(str(host) + str(port) + str(transaction.request.token))
          if key_token in self._relations:
              if transaction.response.code == defines.Codes.CONTENT.number:
                  if transaction.resource is not None and transaction.resource.observable:
  
                      transaction.response.observe = transaction.resource.observe_count
                      self._relations[key_token].allowed = True
                      self._relations[key_token].transaction = transaction
                      self._relations[key_token].timestamp = time.time()
                  else:
                      del self._relations[key_token]
              elif transaction.response.code >= defines.Codes.ERROR_LOWER_BOUND:
                  del self._relations[key_token]
          return transaction
docs: Finalize to add the client to the list of observer.
  
          :type transaction: Transaction
          :param transaction: the transaction that owns the response
          :return: the transaction unmodified