我是apache flink的新手,我需要处理一些来自akka local scoket的数据,这些数据流到“ws://localhost:9000/ws'
在flinkapi中,我只能找到一个名为“sockettextstream”的函数,它接受主机名、端口和分隔符
前任:
DataStream<String> text = env.socketTextStream(hostname, port, "\n");
如何将套接字指定为“ws://localhost:9000/ws' ?
我是apache flink的新手,我需要处理一些来自akka local scoket的数据,这些数据流到“ws://localhost:9000/ws'
在flinkapi中,我只能找到一个名为“sockettextstream”的函数,它接受主机名、端口和分隔符
前任:
DataStream<String> text = env.socketTextStream(hostname, port, "\n");
如何将套接字指定为“ws://localhost:9000/ws' ?
1条答案
按热度按时间8yoxcaq71#
问题是
socketTextStream
内部使用常规插座,即。java.net.Socket
用于与指定地址的连接。但假设从您描述中的地址来看,您正在处理WebSocket。不能使用常规套接字从WebSocket读取数据。目前,flink没有api从websockets afaik创建数据流。想要得到你想要得到的东西,唯一的办法就是写你自己的SourceFunction
将在内部使用javax.websocket-api
创建连接并从服务器读取数据。