WebSockets 接続の終了 - Mule 4

この操作は、ソケット ID で参照されている現在接続中の WebSockets を終了します。

<flow name="closeConnection">
    <websocket:close-socket
        socketId="#[attributes.socketId]"
        reason="Quota exceeded"/>
</flow>
xml

Close の出力

この操作は、ペイロードや属性を返しません。

On Socket Closed

メッセージソースは、WebSocket が終了するたびにフローをトリガーします。これは、クリーンアップ操作、ログ記録、アプリケーションの状態の更新を実行する場合に便利です。

これは非同期です。フローが呼び出されるまでに、ソケットは終了しています。参照される WebSocket を介してメッセージを送信しようとすると、エラーが発生します。

<flow name="onConnectionClosed">
    <websocket:on-connection-closed path="/chat/*" config-ref="ws" />
    <logger
        level="INFO"
        message="No more messages please: you shall not pass." />
</flow>

<flow name="receiveMessagesFlow">
    <websocket:on-inbound-connection path="/chat" config-ref="ws" />
    <logger
        level="INFO"
        message="Someone just sent a message and now I will close this connection!" />

    <websocket:close-socket
        socketId="#[attributes.socketId]"
        reason="I don't like to talk."
        config-ref="ws" />
</flow>
xml

path パラメーターは、終了時にフローをトリガーするソケットのパスを示します。​catch-all​ を指定する場合、アスタリスクワイルドカード記号 (∗) を使用できます。

On Socket Closed の出力

この操作は、空のペイロードと属性の WebSocketAttributes オブジェクトを返します。