バッチでエラー発生時、クライアントに通知する仕組みをWebSocketで実現
■概要図
メール通知でよくないか?
というツッコミはさておき、考えてしまったものは仕方ない。といったところでしょうか。
■疑問点
・RestControllerとWebSocketHandlerをどうつなぐのか?
・.NETのWebSocketクライアントと、Java(spring boot)のWebSocketサーバはつながるのか?
といった疑問を解消すべく、動作検証してみました。
■参考URL
サーバサイド:
クライアントサイド:
[C#]System.Net.WebSocketsを試す。その1。ClientWebSocket編。 | Kimux.Net
この二つのサンプルを組み合わせれば完了です。
https://github.com/taka2/spring-boot-websocket-sample
https://github.com/taka2/web-socket-client-sample-dotnet
■疑問点の解消
・RestControllerとWebSocketHandlerをどうつなぐのか?
→RestController側に、WebSocketHandlerを@Autowiredすれば普通に呼べる
・.NETのWebSocketクライアントと、Java(spring boot)のWebSocketサーバはつながるのか?
→.NETで使えるWebSocketクライアントはいくつかあるようです。
・WebSocket4Net
・websocket-sharp
・標準のSystem.Net.WebSockets
・WebSocket4Net
よさげだったのですが、うまくつながらず(Javaとの相性?)
・websocket-sharp
自分でビルドするか、買わないといけないらしく、あきらめた。
・標準のSystem.Net.WebSockets
うまく動作しました。ただし、Windows8以降しか対応していないようなので、実務では使えません。どうするか要検討です。
というわけで、課題はあるものの、仕組みとしては実現可能ということが分かりました。しかし、もっとシンプルな仕組みにできないものですかね。