Mina向已连接的session主动推送消息

>>1. 情景描述 . 在开启端口监听, 客户端连接之后,定时向客户端发送消息流 .

  用来模拟实时数据 . 基于mina

   具体是在server端的handler 里面添加重写sessionOpend方法.

  (需要以线程的方式展开. 我的代码是随机发送hello 和 well 单词 , 在1.2秒间隔内, 做单词统计用 . 流处理)

  注意: 这里是开启了新线程 , 不会造成主线程阻塞.

@Override
    public void sessionOpened(IoSession session) throws Exception {

                Thread thread = new Thread(new Runnable() {
            public void run() {
                Random random = new Random();
                try {
                    while(true){
                        int r1 = 1+random.nextInt(10);
                        int r2 = 5+random.nextInt(10);
                        for (int i = 0; i <r1 ; i++) {
                            session.write("hello");
                        }
                        for (int i = 0; i <r2 ; i++) {
                            session.write("well");
                        }

                        Thread.sleep(1200);
                    }
                } catch (Exception e) {
                    System.out.println("Send message error!!!--" + e.getMessage());
                    e.printStackTrace();
                }
            }
        });
        thread.start();
        System.out.println("client handler close session ......");

    }

 -->最终效果就是每1.2秒 , 接收到了mina服务主动发送的消息 . 包含单词.用Spark统计一段时间内的个数,SparkStreaming技术.

原文地址:https://www.cnblogs.com/alpha-cat/p/12749459.html