• 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技术.

  • 相关阅读:
    《Python 学习手册4th》 第十一章 赋值、表达式和打印
    《Python 学习手册4th》 第十章 Python语句简介
    视图
    表约束
    表值参数
    表操作
    MSSQL数据批量插入优化详细
    SQL Server表分区
    表分区中的分区交换
    maven命令和maven插件
  • 原文地址:https://www.cnblogs.com/alpha-cat/p/12749459.html
Copyright © 2020-2023  润新知