ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

バッチでエラー発生時、クライアントに通知する仕組みをWebSocketで実現

■概要図

f:id:taka_2:20160903192047p:plain

 

メール通知でよくないか?

というツッコミはさておき、考えてしまったものは仕方ない。といったところでしょうか。

 

■疑問点

・RestControllerとWebSocketHandlerをどうつなぐのか?

・.NETのWebSocketクライアントと、Java(spring boot)のWebSocketサーバはつながるのか?

 といった疑問を解消すべく、動作検証してみました。

 

■参考URL

サーバサイド:

pgcolony.com

クライアントサイド:

 [C#]System.Net.WebSocketsを試す。その1。ClientWebSocket編。 | Kimux.Net

 

 この二つのサンプルを組み合わせれば完了です。

一応自分のgithubリポジトリにも作ってみました。

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

websocket4net.codeplex.com

・websocket-sharp

github.com

・標準のSystem.Net.WebSockets

 

・WebSocket4Net

よさげだったのですが、うまくつながらず(Javaとの相性?)

websocket-sharp

自分でビルドするか、買わないといけないらしく、あきらめた。

・標準のSystem.Net.WebSockets

うまく動作しました。ただし、Windows8以降しか対応していないようなので、実務では使えません。どうするか要検討です。

 

というわけで、課題はあるものの、仕組みとしては実現可能ということが分かりました。しかし、もっとシンプルな仕組みにできないものですかね。

totes A254 AUTOMATIC OPEN&CLOSE TITANIUM NAV(折りたたみ傘)をリピート

taka-2.hatenablog.jp

2年ちょっと愛用してましたが、穴が開いたり結構ひどいことになったので、買い替えることにしました。それ以前に使っていたユニクロの折りたたみ傘などに比べると、かなりの長期間持ちこたえた印象です。もう少し丁寧に扱って、定期的に油を差すなどの対応をしていれば、さらに使えたかも知れません。

私のこだわり?として、天気に関わらず折りたたみ傘は常にカバンに入れておくことにしてます。とりわけスーツを大切にしているとか、そういうのじゃないんですが、常にカバンに一定の重量が増えるデメリットと引き換えに、突然の雨に立ち往生するリスクへの対策をしているということでしょう。

また色々比較検討してもよかったんですが、面倒だったのでまたおんなじのにしました。

www.amazon.co.jp

 またしばらく愛用していきたいと思います。