首页 > 其他 > 详细

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

时间:2020-04-22 09:31:58      阅读:137      评论:0      收藏:0      [点我收藏+]

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

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

   具体时间在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统计各个的个数.

 

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

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!