WebSockets の再接続 - Mule 4

WebSockets は永続的でステートフルな接続に基づきます。接続は確立されてから操作に使用している間に、アイドルタイムアウトやネットワーク状態などの要因により、不意に切断される場合があります。

接続を再確立するにはリモートシステムが接続要求を再送信する必要があるため、インバウンドソケットは自動的に再接続できません。

ただし、アウトバウンドソケットの場合は、接続がドロップされた場合に再接続ポリシーを使用して接続を再確立することができます。

Mule アプリケーションが、たとえばメッセージをソケットに送信するために、不意に終了された WebSocket を使用しようとした場合、最初にアウトバウンドソケットを確立したのと同じ HTTP 要求を再生することで、接続が再確立されます。その後、操作が自動的に再試行されます。

次の例は、接続がドロップされた場合に、1 秒に 1 回ずつ、最大 5 回再接続を試みるように ​<websocket:send>​ 操作を使用して再接続ポリシーを送信する方法を示しています。

<websocket:send socketId="#[vars.socketId]" config-ref="ws">
    <reconnect count="5" frequency="1000"/>
    <websocket:content>Hello World!</websocket:content>
</websocket:send>
xml