Поддерживает ли Thrift отправку данных через веб-сокеты? - PullRequest
13 голосов
/ 28 сентября 2011

Я хотел бы использовать thrift с сервером Java, отправляющим данные в браузер с помощью веб-сокетов.Возможно ли это?

Ответы [ 3 ]

8 голосов
/ 20 июня 2015

Согласно этой проблеме: https://issues.apache.org/jira/browse/THRIFT-2355 Thrift получил поддержку веб-сокетов в компиляторе javascript для версии 0.9.2.

4 голосов
/ 29 сентября 2011

В хозяйстве есть 2 важные вещи: протокол и транспорт.Протокол определяет, как данные сериализуются в поток данных.И транспорт определяет, как эти потоки данных обмениваются между связывающимися объектами.

В Thrift есть протокол json, который поддерживается javascript, но что касается транспортов, я думаю, что Thrift поддерживает только 2 транспорта raw tcp и http,Позже его можно использовать для вызова операции на HTTP-сервере и получения результата с него, но не наоборот, как вам нужно.

Полагаю, вы могли бы использовать протокол json, но вам нужно было бы засучить рукава и реализовать свой собственный транспорт веб-сокетов.Это может быть нетривиальной задачей.

1 голос
/ 24 августа 2012

Начиная с версии 1.0.9.0 Thrift ответ - нет.

На стороне клиента сгенерированный javascript использует AJAX для своего транспорта, как видно из библиотеки Thirft.js, поэтому, если клиент былчтобы использовать WebSocket, необходимо изменить транспорт в Thrift.

На стороне сервера в коде Java показан сервер сокетов, но я считаю, что он не имеет подтверждения связи, необходимого для кода на стороне сервера WebSocket.Опять же, возможно, будет добавлено несколько легко.Возможно, для вас имеет больше смысла использовать jWebSocket в качестве сервера и классы объектов Java, созданные Thrift, а не версию сервера Thrift.Вы можете проверить код, чтобы узнать его лучше в Thrift.см. / lib / java / src / org / apache / thrift / раздел ствола в Thrift.

...