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