(3) 事件处理类:RtspServerHandler.java
public class RtspServerHandler extends SimpleChannelHandler {
@Override
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
// TODO Auto-generated method stub
super.channelOpen(ctx, e);
LOGGER.info("Rtsp服务器端channel opened :"+ctx.getChannel().getRemoteAddress());
}
@Override
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
throws Exception {
// TODO Auto-generated method stub
super.channelConnected(ctx, e);
LOGGER.info("Rtsp服务器端channel connected");
}
private static final Logger LOGGER = Logger.getLogger(RtspServerHandler.class);
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e)
throws Exception {
HttpRequest objMessage = (HttpRequest) e.getMessage();
LOGGER.info("Rtsp服务器端接收到数据:"+objMessage);
if(objMessage instanceof HttpRequest){
// DefaultHttpRequest request = (DefaultHttpRequest) objMessage;
// HttpRequest req = new DefaultHttpRequest(RtspVersions.RTSP_1_0,RtspMethods.PLAY, "shanglenidexindewodexinhaoshangxin.mp3");
// e.getChannel().write(req);
// if(request.getContent() instanceof CompositeChannelBuffer){
// CompositeChannelBuffer ccb = (CompositeChannelBuffer) request.getContent();
// byte[] b0 = ccb.getBuffer(0).array();
// System.out.println(Utils.bytesToHex(b0));
// byte[] b1 = ccb.getBuffer(b0.length).array();
// System.out.println(Utils.bytesToHex(b1));
//
// }
writeMsg(objMessage,e.getFuture().getChannel());
}
}
private void writeMsg(HttpRequest request , Channel channel) throws IOException{
ChannelBuffer cbuffer = new DynamicChannelBuffer(8192);
// cbuffer.writeBytes("hello".getBytes(Constants.UTF8ENCODER));
DefaultHttpResponse response = new DefaultHttpResponse(RtspVersions.RTSP_1_0, RtspResponseStatuses.OK);