Интеграция с WebSocket

Описание

В данном разделе описывается процесс настройки WebSocket‑коннектора и создание маршрута, обеспечивающего прием и обработку данных по протоколу WebSocket.

Процесс взаимодействия с WebSocket состоит из следующих шагов:

  1. Устанавливаем фичу camel-websocket:
    Для работы с WebSocket необходимо установить соответствующий компонент Camel, в данном случае используется WebSocket на базе Jetty. При необходимости могут использоваться и другие реализации.

    feature:install -r camel-websocket
  2. Проверяем, что установленный бандл находится в статусе Active.

    633 │ Active │ 50 │ 3.4.5 │ camel-websocket
  3. Создаем профиль системы websocket и добавляем к нему выходной кастомный коннектор. В точке кастомизации custom-route создаем маршрут, который реализует обработку входящих данных, полученных по протоколу WebSocket: логирование, формирование ответа и рассылку всем подключенным клиентам:

    <?xml version="1.0" encoding="UTF-8"?>
    <entaxy:object-route
        xmlns="http://camel.apache.org/schema/blueprint"
        xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
        xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
        xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">
        <from uri="websocket://0.0.0.0:9393/echowebsocket"/>
        <m:log message="WS server received: ${body}"/>
        <setBody>
            <simple>Hello from Entaxy WebSocket</simple>
        </setBody>
        <to uri="websocket://0.0.0.0:9393/echowebsocket?sendToAll=true"/>
        <m:log message="WS server completed processing: ${body}"/>
        <m:log message="Custom input route execution finished"/>
        <m:respond now="true" continue="false"/>
    </entaxy:object-route>
  4. Для проверки работы коннектора можно использовать Postman в режиме WebSocket-клиента:

    • устанавливаем соединение: ws://localhost:9393/echowebsocket

    • отправляем тестовое сообщение (например, Test)

      После отправки тестового сообщения в рамках маршрута формируется ответ и клиент возвращает сообщение: Hello from Entaxy WebSocket.