如何从flink中端口号后面带有“ / *”的本地套接字使用,其中*是其余的源?

时间:2019-04-19 21:18:16

标签: apache-flink flink-streaming

我是apache-flink的新手,我需要处理一些来自流到'ws:// localhost:9000 / ws'的akka​​本地scoket的数据

在flink API中,我只能找到一个名为“ socketTextStream”的函数 需要主机名,端口和定界符

例如:

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

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

1 个答案:

答案 0 :(得分:1)

问题是socketTextStream内部使用常规套接字,即java.net.Socket用于与指定地址的连接。但是根据您描述中的地址,您正在处理WebSocket。您不能使用常规套接字从WebSocket读取数据。当前,Flink没有用于从WebSockets AFAIK创建数据流的API。唯一要获得的内容就是编写自己的SourceFunction,该javax.websocket-api将在内部使用{{1}}创建连接并从服务器中读取数据。