2016-03-15 3 views
1

У меня есть конечная точка, определенная для принятия сетевых соединений. Когда клиент делает первоначальный запрос к службе, он передает некоторые параметры GET (например, ?for=purpose), и мне нужно зафиксировать эти значения ... Есть ли способ сделать это в Camel?Можете ли вы получить параметры запроса от компонента Camel WebSocket?

ответ

0

Afaik, вы не можете сделать это в текущей версии Camel.

Однако вы можете получить доступ к HttpServletRequest (который содержит запрос, обновленный до websocket, со всеми параметрами, URL-адресом и т. Д.) Путем реализации пользовательского WebSocketFactory. Этот запрос является первым параметром WebSocketFactory.newInstance. Вы можете получить доступ к параметрам в URL-адресе, вызвав request.getParameter(...).

Переопределение WebSocketFactory по умолчанию не «одна конфигурация линии», но, как вы уже просили об этом в другом вопросе, я полагаю, вы уже сделали это ;-)

+0

Я сделал это уже, но я не видите, как помещать эти данные в заголовки для Exchange изнутри либо на фабрику, либо в версию WebSocket, которую я написал. –

+0

обновить 'connectionKey' вашей реализации' WebSocket', чтобы он содержал нужные вам параметры. Это строка, поэтому вам придется выполнять синтаксический анализ/извлечение этих данных. Этот ключ подключения отправляется с каждым сообщением на маршрут в заголовке 'WebsocketConstants.CONNECTION_KEY'. Честно говоря, вы должны написать запрос на список верблюдов/jira, потому что вы получаете доступ к внутреннему объекту этого компонента, и этот код может сломаться в будущей версии верблюда! –

Смежные вопросы