Как использовать из локального сокета в flink, который имеет "/ *" после номера порта, где * остальная часть источника? - PullRequest
0 голосов
/ 20 апреля 2019

Я новичок в apache-flink, и мне нужно обработать некоторые данные, поступающие из локального скокета akka, который транслируется на 'ws: // localhost: 9000 / ws'

В API Flink я могу только найтифункция с именем 'socketTextStream', которая принимает имя хоста, порт и разделитель

ex:

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

Как я могу указать сокет как 'ws: // localhost: 9000 / ws'?

1 Ответ

1 голос
/ 20 апреля 2019

Проблема заключается в том, что socketTextStream внутренне использует обычные сокеты, т.е. java.net.Socket для соединения с указанным адресом.Но исходя из адреса в Вашем описании, Вы имеете дело с WebSockets.Вы не можете использовать обычные сокеты для чтения данных из WebSockets.В настоящее время Flink не имеет API для создания потока данных из AFSIK WebSockets.Единственное, что вы хотите получить - это написать свой SourceFunction, который будет внутренне использовать javax.websocket-api для создания соединения и чтения данных с вашего сервера.

...