package com.neverwinterdp.sparkngin.http; import java.io.IOException; import io.netty.buffer.ByteBuf; import io.netty.handler.codec.http.HttpContent; import com.neverwinterdp.message.Message; import com.neverwinterdp.sparkngin.Ack; import com.neverwinterdp.util.IOUtil; import com.neverwinterdp.util.JSONSerializer; public class JBinaryHttpSparknginClient extends AbstractHttpSparknginClient { public JBinaryHttpSparknginClient(String host, int port, int bufferSize, boolean connect) throws Exception { super(host, port, bufferSize, connect) ; setPath("/message/jbinary") ; } protected Ack toAck(HttpContent content) { ByteBuf byteBuf = content.content() ; byte[] data = new byte[byteBuf.readableBytes()] ; byteBuf.readBytes(data) ; //byteBuf.release() ; Ack ack = null; try { ack = (Ack)IOUtil.deserialize(data); } catch (Exception e) { e.printStackTrace(); ack = new Ack() ; ack.setStatus(Ack.Status.ERROR); ack.setMessage(e.getMessage()); } return ack ; } @Override protected byte[] toBinData(Message message) { try { return IOUtil.serialize(message) ; } catch (IOException e) { throw new RuntimeException(e) ; } } protected String toStringData(Message message) { return JSONSerializer.INSTANCE.toString(message); } }