PvtServer の引っ越し:REST(7)
ORCA から 受付 CLAIM 情報を受けたときに WebSocket でクライアントに伝える仕組みを作った。
処理の流れ
クライアントは起動時にサーバの WebSocket につないで session を確立しておく → PvtServer は ORCA から CLAIM を受ける → CLAIM を受けた PvtServer は PatientVisitModel に変換して addPvt する → addPvt により PatientVisitModel テーブルが変化すると PatientVisitModelListener が呼ばれる → PatientVisitModelListener は WebSocket のクライアント全員に PatientVisitModel を送るクライアント側
WebSocket につなぐ時に Endpoint を extend したクラスを指定して,そのクラスで pvt を受け取る。- DolphinClientContext
public Session setEndpoint(Endpoint endpoint) { webSocketContainer.connectToServer(endpoint, webSocketUri); }
- WatingListImpl
DolphinClientContext.getContext().setEndpoint(new Endpoint(){ @Override public void onOpen(Session session, EndpointConfig config) { session.addMessageHandler(new MessageHandler.Whole
() { @Override public void onMessage(String message) { // pvt 処理 }); } });
サーバ側
- PatientVisitModel にリスナをつける。
@Entity @EntityListeners(PatientVisitModelListener.class) @Table(name = "d_patient_visit") public class PatientVisitModel extends InfoModel { :
- pvt が変化したら,通知を受けた PatientVisitModelListener から WebSocket クライアントに PatientVisitModel を送る。
« Authorization:REST(6) | トップページ | Client の引っ越し:REST(8) »
「OpenDolphin」カテゴリの記事
- 13年目の運用まとめ(2021.02.04)
- スタンプの簡易表示(2020.09.04)
- Java 1.8.0_261 での apple.awt.brushMetalLook(2020.07.26)
- Undo の充実 (4) StampEditor, StampTree(2020.07.23)
- Undo の充実 (3) AtokListener(2020.07.22)