В wso2 ESB я могу отправить, но я не могу слушать websocket - PullRequest
0 голосов
/ 01 сентября 2018

В wso2 ESB я могу отправлять данные в WebSocket, но не могу получать данные. Я попробовал это с остальными API WSO2 ESB.

<?xml version="1.0" encoding="UTF-8"?>
<api context="/test" name="test" xmlns="http://ws.apache.org/ns/synapse">
    <resource methods="POST">
        <inSequence>
            <property name="OUT_ONLY" scope="default" type="STRING" value="true"/>
            <property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/>
            <log level="full">
                <property name="message" value="********************************************input**********************"/>
            </log>
            <send>
                <endpoint>
                    <http method="post" uri-template="ws://localhost:8080/websocket/server"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>

            <send/>
        </outSequence>
        <faultSequence/>
    </resource>
</api>

outsequence:

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="outflowDispatchSeq" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <log level="full">
        <property name="message" value="************************************************"/>
    </log>
</sequence>

с помощью вышеуказанного API, я могу отправить данные на сервер, как показано на рисунке ниже. enter image description here

Http запрос от почтальона. enter image description here

Но, как показано на изображении консоли ниже, ответ, который я получаю, пуст, так как тела нет. enter image description here

Если я использую прокси-сервис с типом содержимого, указанным в документации esb ( ссылка ) на сервере веб-сокетов, я получаю исключение

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="dispatchSeq" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
 <property name="OUT_ONLY" value="true"/>
        <property name="FORCE_SC_ACCEPTED" scope="axis2" type="STRING" value="true"/>
        <property name="websocket.accept.contenType" scope="axis2" value="text/plain"/>
        <send>
            <endpoint>
                <address uri="ws://localhost:8080/websocket/server"/>
            </endpoint>
        </send>
</sequence>

enter image description here axis2.xml Конфигурация веб-сокета:

<transportSender name="ws" class="org.wso2.carbon.websocket.transport.WebsocketTransportSender">
        <parameter name="ws.outflow.dispatch.sequence" locked="false">outflowDispatchSeq</parameter>
        <parameter name="ws.outflow.dispatch.fault.sequence" locked="false">outflowFaultSeq</parameter>       
    </transportSender>

Так как отправлять и получать данные из веб-сокета

...