示例#1
0
  @Override
  @VarZ("/dht/messages/incoming")
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
      throws IOException, ServletException {
    int length = request.getContentLength();
    byte[] data = new byte[length];
    DataInputStream dataIs = new DataInputStream(request.getInputStream());
    dataIs.readFully(data);
    dataIs.close();

    String hostname = request.getHeader("X-Node-Host");
    String port = request.getHeader("X-Node-Port");

    InetSocketAddress src = InetSocketAddress.createUnresolved(hostname, Integer.valueOf(port));

    try {
      DHTMessage destination =
          context.getMessageFactory().createMessage(src, ByteBuffer.wrap(data));

      varZ.log("/dht/messages/incoming/" + destination.getOpCode().name().toLowerCase());

      dispatcher.get().handleMessage(destination);
    } catch (Exception e) {
      logger.error(e);
    }
  }