2012-01-19 10 views
0

私は、Channelインスタンス(「channelConnected」メソッドから取得)をTimer(org.jboss.netty.util.Timer)に使用しようとするといくつかの問題があります。使用のために 'TimerTask'への外部変数が必要であり、 'final'と宣言されています。TimerへのChannel参照の使用

私がしようとしているのは、クライアントが接続され、タイマーを開始し、接続がアクティブである間に、チャンネルを介していくつかの情報を送信するときです。これを行う方法はありますか?

ありがとうございました。

public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { 
     ... 
     this.timerLocal.newTimeout(new TimerTask() { 
      public void run(Timeout timeout) throws Exception { 
       Channel ch = ctx.getChannel(); 
       ch.write("data data data"); 
      } 
     }, 25, TimeUnit.SECONDS); 
     ... 
} 

答えて

1

私は本当に正確にあなたの問題が何であるかを理解していないが、私はあなたがIdleStateHandlerとIdleStateAwareUpstreamHandler経由でも行うことができます探しているものだと思います。

ただ、x秒ごとに書き込みアイドルイベントにアイドルイベントをトリガして、これらのイベントに耳を傾け、Channel.write(...)を起動しますカスタムIdleStateAwareUpstreamHandlerを作成しますどのIdleStateHandlerを挿入

関連する問題