如何从flink中端口号后面有“/*”的本地套接字进行消费,其中*是源的其余部分?

kokeuurv  于 2021-06-21  发布在  Flink
关注(0)|答案(1)|浏览(530)

我是apache flink的新手,我需要处理一些来自akka local scoket的数据,这些数据流到“ws://localhost:9000/ws'
在flinkapi中,我只能找到一个名为“sockettextstream”的函数,它接受主机名、端口和分隔符
前任:

DataStream<String> text = env.socketTextStream(hostname, port, "\n");

如何将套接字指定为“ws://localhost:9000/ws' ?

8yoxcaq7

8yoxcaq71#

问题是 socketTextStream 内部使用常规插座,即。 java.net.Socket 用于与指定地址的连接。但假设从您描述中的地址来看,您正在处理WebSocket。不能使用常规套接字从WebSocket读取数据。目前,flink没有api从websockets afaik创建数据流。想要得到你想要得到的东西,唯一的办法就是写你自己的 SourceFunction 将在内部使用 javax.websocket-api 创建连接并从服务器读取数据。

相关问题