Я хотел бы использовать бережливость с сервером Java, отправляющим данные в браузер с помощью websockets. Возможно ли это?
Поддерживает ли транзакция передачу данных через веб-узлы?
Ответ 1
В экономичности есть две важные вещи: протокол и транспорт. Протокол определяет, как данные преобразуются в поток данных. И транспорт определяет, как эти потоки данных обмениваются между сообщениями entites.
Существует протокол json в экономии, который поддерживается javascript, но, насколько это касается транспорта, я думаю, что Thrift поддерживает только 2 транспорта raw tcp и http. Позже можно использовать для вызова операции на HTTP-сервере и получить результат от него, но не так, как вам нужно.
Я думаю, вы могли бы использовать протокол json, но вам нужно будет свернуть рукава и реализовать свой собственный перенос веб-портов. Это может быть нетривиальной задачей.
Ответ 2
В соответствии с этой проблемой: https://issues.apache.org/jira/browse/THRIFT-2355 Потребовалась поддержка веб-сокетов в компиляторе javascript для версии 0.9.2.
Ответ 3
По состоянию на v.0.9.0 Thrift ответ отрицательный.
На стороне клиента генерируемый javascript использует AJAX для транспортировки, как показано в библиотеке Thirft.js, поэтому, если клиент должен использовать WebSocket, тогда необходимо изменить транспорт в Thrift.
На стороне сервера код Java показывает сервер сокета, но я считаю, что он не требует установления связи, необходимого для кода на стороне сервера WebSocket. Опять же, вероятно, можно добавить несколько легко. Вероятно, для вас больше смысла использовать jWebSocket в качестве вашего сервера и классов объектов Java, созданных бережливо, чем версия сервера Thrift. Вы можете проверить код, чтобы лучше узнать его в Thrift. см./lib/java/src/org/apache/бережливость/часть ствола в Thrift.