import org.apache.flink.api.java.functions.KeySelector; import
org.apache.flink.streaming.api.windowing.assigners.TumblingEventTimeWindows;
import org.apache.flink.streaming.api.windowing.time.Time; ...
DataStream<Integer> orangeStream = ... DataStream<Integer> greenStream =
... orangeStream.join(greenStream) .where(<KeySelector>)
.equalTo(<KeySelector>)
.window(TumblingEventTimeWindows.of(Time.milliseconds(2))) .apply (new
JoinFunction<Integer, Integer, String> (){ @Override public
String join(Integer first, Integer second) { return first + "," +
second; } });????????????,
????richJoinFunction????valueState,????????????????????
????state????????????????????????????????, ?????????????????????