1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.example.securechat;
17
18 import java.util.logging.Level;
19 import java.util.logging.Logger;
20
21 import org.jboss.netty.channel.ChannelEvent;
22 import org.jboss.netty.channel.ChannelHandlerContext;
23 import org.jboss.netty.channel.ChannelStateEvent;
24 import org.jboss.netty.channel.ExceptionEvent;
25 import org.jboss.netty.channel.MessageEvent;
26 import org.jboss.netty.channel.SimpleChannelUpstreamHandler;
27 import org.jboss.netty.handler.ssl.SslHandler;
28
29
30
31
32
33
34
35
36
37 public class SecureChatClientHandler extends SimpleChannelUpstreamHandler {
38
39 private static final Logger logger = Logger.getLogger(
40 SecureChatClientHandler.class.getName());
41
42 @Override
43 public void handleUpstream(
44 ChannelHandlerContext ctx, ChannelEvent e) throws Exception {
45 if (e instanceof ChannelStateEvent) {
46 logger.info(e.toString());
47 }
48 super.handleUpstream(ctx, e);
49 }
50
51 @Override
52 public void channelConnected(
53 ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {
54
55
56 SslHandler sslHandler = ctx.getPipeline().get(SslHandler.class);
57
58
59 sslHandler.handshake();
60 }
61
62 @Override
63 public void messageReceived(
64 ChannelHandlerContext ctx, MessageEvent e) {
65 System.err.println(e.getMessage());
66 }
67
68 @Override
69 public void exceptionCaught(
70 ChannelHandlerContext ctx, ExceptionEvent e) {
71 logger.log(
72 Level.WARNING,
73 "Unexpected exception from downstream.",
74 e.getCause());
75 e.getChannel().close();
76 }
77 }