Как получить объект ответа в ответе сервера bayeux в CometD

Я пытаюсь настроить ответ сервера Bayeux, чтобы я мог добавить некоторые параметры заголовка, прежде чем отправлять его обратно в пользовательский интерфейс. Я могу добавить значения заголовков в запрос, используя метод настройки в LongPollingTransport. Нужна большая помощь.


person rahul    schedule 18.08.2017    source источник


Ответы (1)


CometD пытается абстрагироваться от базового протокола.

Когда вы, например, используете WebSocket, концепции заголовков запросов и ответов просто больше не существуют.

Таким образом, лучше, если у вас есть дополнительная информация для отправки клиенту, ну, чтобы дополнительная информация входила в сообщения CometD, а не в заголовки HTTP.

Кроме того, при использовании HTTP в качестве транспорта один ответ HTTP может содержать несколько сообщений, поэтому неясно, к какому сообщению CometD будет относиться дополнительная информация.

Ваш вопрос слишком общий (не говорит, почему вы хотите добавить заголовки, не говорит, какой именно заголовок и т. Д.), Чтобы получить точный ответ, но суть в том, что вы обычно не хотите использовать заголовки HTTP с CometD.

person sbordet    schedule 18.08.2017
comment
Дополнительная информация, которую я хочу добавить в заголовки, полностью связана с безопасностью, например. установите X-Frame-Options: DENY, добавьте Cache-Control: no-cache, no-store, must-revalidate и т. д. Но если я добавлю его в сообщение, оно станет частью тела (пожалуйста, поправьте меня, если я ошибаюсь ). - person rahul; 21.08.2017
comment
Разве вы не можете использовать для этого фильтр сервлетов? - person sbordet; 21.08.2017
comment
Да, я использовал HeaderFilter в раздаче причала, чтобы сделать то, что я настроил в моем файле web.xml, как упоминалось здесь eclipse.org/jetty/documentation/9.4.x/header-filter.html, но для обычных HTTP-ответов я могу установить заголовки, но для ответов cometD это не так. установка его. Не могли бы вы привести мне пример, как это сделать. Я использую библиотеку cometd js и отправляет запрос на сервер bayeux. Это причина того, что он его не перехватывает? - person rahul; 21.08.2017
comment
Задайте вопрос на странице github.com/cometd/cometd/issues, и давайте продолжим обсуждение там. - person sbordet; 21.08.2017
comment
Мне удалось это сделать с помощью настраиваемого фильтра. Спасибо за помощь, Саймон. - person rahul; 22.08.2017