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」カテゴリの記事
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)
- Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編](2023.02.01)
- Java 17 への移行(3) - OpenSearch の準備 [mac 編](2023.01.31)